MAYBE
Time: 2.537929
TRS:
 {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                            mark 0() -> active 0(),
                        mark zeros() -> active zeros(),
                          mark U12 X -> active U12 mark X,
                    mark isNatList X -> active isNatList X,
                    mark U11(X1, X2) -> active U11(mark X1, X2),
                           mark tt() -> active tt(),
                          mark U22 X -> active U22 mark X,
                        mark isNat X -> active isNat X,
                    mark U21(X1, X2) -> active U21(mark X1, X2),
                          mark U32 X -> active U32 mark X,
                    mark U31(X1, X2) -> active U31(mark X1, X2),
                    mark U42(X1, X2) -> active U42(mark X1, X2),
                mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                          mark U43 X -> active U43 mark X,
                   mark isNatIList X -> active isNatIList X,
                    mark U52(X1, X2) -> active U52(mark X1, X2),
                mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                          mark U53 X -> active U53 mark X,
                    mark U62(X1, X2) -> active U62(mark X1, X2),
                mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                          mark U63 X -> active U63 mark X,
                            mark s X -> active s mark X,
                       mark length X -> active length mark X,
                    mark U71(X1, X2) -> active U71(mark X1, X2),
                          mark nil() -> active nil(),
                          mark U81 X -> active U81 mark X,
                   mark take(X1, X2) -> active take(mark X1, mark X2),
            mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                    mark and(X1, X2) -> active and(mark X1, X2),
               mark isNatIListKind X -> active isNatIListKind X,
                    mark isNatKind X -> active isNatKind X,
                   cons(X1, mark X2) -> cons(X1, X2),
                 cons(X1, active X2) -> cons(X1, X2),
                   cons(mark X1, X2) -> cons(X1, X2),
                 cons(active X1, X2) -> cons(X1, X2),
                      active zeros() -> mark cons(0(), zeros()),
                     active U12 tt() -> mark tt(),
       active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
              active isNatList nil() -> mark tt(),
       active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                active U11(tt(), V1) -> mark U12 isNatList V1,
                     active U22 tt() -> mark tt(),
                    active isNat 0() -> mark tt(),
                   active isNat s V1 -> mark U21(isNatKind V1, V1),
              active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                active U21(tt(), V1) -> mark U22 isNat V1,
                     active U32 tt() -> mark tt(),
                 active U31(tt(), V) -> mark U32 isNatList V,
                active U42(tt(), V2) -> mark U43 isNatIList V2,
            active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                     active U43 tt() -> mark tt(),
                 active isNatIList V -> mark U31(isNatIListKind V, V),
      active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
           active isNatIList zeros() -> mark tt(),
                active U52(tt(), V2) -> mark U53 isNatList V2,
            active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                     active U53 tt() -> mark tt(),
                active U62(tt(), V2) -> mark U63 isNatIList V2,
            active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                     active U63 tt() -> mark tt(),
            active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                 active length nil() -> mark 0(),
                 active U71(tt(), L) -> mark s length L,
                     active U81 tt() -> mark nil(),
                active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
       active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
          active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                 active and(tt(), X) -> mark X,
  active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
       active isNatIListKind zeros() -> mark tt(),
         active isNatIListKind nil() -> mark tt(),
  active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                active isNatKind 0() -> mark tt(),
               active isNatKind s V1 -> mark isNatKind V1,
          active isNatKind length V1 -> mark isNatIListKind V1,
                          U12 mark X -> U12 X,
                        U12 active X -> U12 X,
                    isNatList mark X -> isNatList X,
                  isNatList active X -> isNatList X,
                    U11(X1, mark X2) -> U11(X1, X2),
                  U11(X1, active X2) -> U11(X1, X2),
                    U11(mark X1, X2) -> U11(X1, X2),
                  U11(active X1, X2) -> U11(X1, X2),
                          U22 mark X -> U22 X,
                        U22 active X -> U22 X,
                        isNat mark X -> isNat X,
                      isNat active X -> isNat X,
                    U21(X1, mark X2) -> U21(X1, X2),
                  U21(X1, active X2) -> U21(X1, X2),
                    U21(mark X1, X2) -> U21(X1, X2),
                  U21(active X1, X2) -> U21(X1, X2),
                          U32 mark X -> U32 X,
                        U32 active X -> U32 X,
                    U31(X1, mark X2) -> U31(X1, X2),
                  U31(X1, active X2) -> U31(X1, X2),
                    U31(mark X1, X2) -> U31(X1, X2),
                  U31(active X1, X2) -> U31(X1, X2),
                    U42(X1, mark X2) -> U42(X1, X2),
                  U42(X1, active X2) -> U42(X1, X2),
                    U42(mark X1, X2) -> U42(X1, X2),
                  U42(active X1, X2) -> U42(X1, X2),
                U41(X1, X2, mark X3) -> U41(X1, X2, X3),
              U41(X1, X2, active X3) -> U41(X1, X2, X3),
                U41(X1, mark X2, X3) -> U41(X1, X2, X3),
              U41(X1, active X2, X3) -> U41(X1, X2, X3),
                U41(mark X1, X2, X3) -> U41(X1, X2, X3),
              U41(active X1, X2, X3) -> U41(X1, X2, X3),
                          U43 mark X -> U43 X,
                        U43 active X -> U43 X,
                   isNatIList mark X -> isNatIList X,
                 isNatIList active X -> isNatIList X,
                    U52(X1, mark X2) -> U52(X1, X2),
                  U52(X1, active X2) -> U52(X1, X2),
                    U52(mark X1, X2) -> U52(X1, X2),
                  U52(active X1, X2) -> U52(X1, X2),
                U51(X1, X2, mark X3) -> U51(X1, X2, X3),
              U51(X1, X2, active X3) -> U51(X1, X2, X3),
                U51(X1, mark X2, X3) -> U51(X1, X2, X3),
              U51(X1, active X2, X3) -> U51(X1, X2, X3),
                U51(mark X1, X2, X3) -> U51(X1, X2, X3),
              U51(active X1, X2, X3) -> U51(X1, X2, X3),
                          U53 mark X -> U53 X,
                        U53 active X -> U53 X,
                    U62(X1, mark X2) -> U62(X1, X2),
                  U62(X1, active X2) -> U62(X1, X2),
                    U62(mark X1, X2) -> U62(X1, X2),
                  U62(active X1, X2) -> U62(X1, X2),
                U61(X1, X2, mark X3) -> U61(X1, X2, X3),
              U61(X1, X2, active X3) -> U61(X1, X2, X3),
                U61(X1, mark X2, X3) -> U61(X1, X2, X3),
              U61(X1, active X2, X3) -> U61(X1, X2, X3),
                U61(mark X1, X2, X3) -> U61(X1, X2, X3),
              U61(active X1, X2, X3) -> U61(X1, X2, X3),
                          U63 mark X -> U63 X,
                        U63 active X -> U63 X,
                            s mark X -> s X,
                          s active X -> s X,
                       length mark X -> length X,
                     length active X -> length X,
                    U71(X1, mark X2) -> U71(X1, X2),
                  U71(X1, active X2) -> U71(X1, X2),
                    U71(mark X1, X2) -> U71(X1, X2),
                  U71(active X1, X2) -> U71(X1, X2),
                          U81 mark X -> U81 X,
                        U81 active X -> U81 X,
                   take(X1, mark X2) -> take(X1, X2),
                 take(X1, active X2) -> take(X1, X2),
                   take(mark X1, X2) -> take(X1, X2),
                 take(active X1, X2) -> take(X1, X2),
            U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
          U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
            U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
          U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
            U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
          U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
            U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
          U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                    and(X1, mark X2) -> and(X1, X2),
                  and(X1, active X2) -> and(X1, X2),
                    and(mark X1, X2) -> and(X1, X2),
                  and(active X1, X2) -> and(X1, X2),
               isNatIListKind mark X -> isNatIListKind X,
             isNatIListKind active X -> isNatIListKind X,
                    isNatKind mark X -> isNatKind X,
                  isNatKind active X -> isNatKind X}
 DP:
  DP:
   {
                     mark# cons(X1, X2) -> mark# X1,
                     mark# cons(X1, X2) -> cons#(mark X1, X2),
                     mark# cons(X1, X2) -> active# cons(mark X1, X2),
                              mark# 0() -> active# 0(),
                          mark# zeros() -> active# zeros(),
                            mark# U12 X -> mark# X,
                            mark# U12 X -> active# U12 mark X,
                            mark# U12 X -> U12# mark X,
                      mark# isNatList X -> active# isNatList X,
                      mark# U11(X1, X2) -> mark# X1,
                      mark# U11(X1, X2) -> active# U11(mark X1, X2),
                      mark# U11(X1, X2) -> U11#(mark X1, X2),
                             mark# tt() -> active# tt(),
                            mark# U22 X -> mark# X,
                            mark# U22 X -> active# U22 mark X,
                            mark# U22 X -> U22# mark X,
                          mark# isNat X -> active# isNat X,
                      mark# U21(X1, X2) -> mark# X1,
                      mark# U21(X1, X2) -> active# U21(mark X1, X2),
                      mark# U21(X1, X2) -> U21#(mark X1, X2),
                            mark# U32 X -> mark# X,
                            mark# U32 X -> active# U32 mark X,
                            mark# U32 X -> U32# mark X,
                      mark# U31(X1, X2) -> mark# X1,
                      mark# U31(X1, X2) -> active# U31(mark X1, X2),
                      mark# U31(X1, X2) -> U31#(mark X1, X2),
                      mark# U42(X1, X2) -> mark# X1,
                      mark# U42(X1, X2) -> active# U42(mark X1, X2),
                      mark# U42(X1, X2) -> U42#(mark X1, X2),
                  mark# U41(X1, X2, X3) -> mark# X1,
                  mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3),
                  mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3),
                            mark# U43 X -> mark# X,
                            mark# U43 X -> active# U43 mark X,
                            mark# U43 X -> U43# mark X,
                     mark# isNatIList X -> active# isNatIList X,
                      mark# U52(X1, X2) -> mark# X1,
                      mark# U52(X1, X2) -> active# U52(mark X1, X2),
                      mark# U52(X1, X2) -> U52#(mark X1, X2),
                  mark# U51(X1, X2, X3) -> mark# X1,
                  mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3),
                  mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3),
                            mark# U53 X -> mark# X,
                            mark# U53 X -> active# U53 mark X,
                            mark# U53 X -> U53# mark X,
                      mark# U62(X1, X2) -> mark# X1,
                      mark# U62(X1, X2) -> active# U62(mark X1, X2),
                      mark# U62(X1, X2) -> U62#(mark X1, X2),
                  mark# U61(X1, X2, X3) -> mark# X1,
                  mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3),
                  mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3),
                            mark# U63 X -> mark# X,
                            mark# U63 X -> active# U63 mark X,
                            mark# U63 X -> U63# mark X,
                              mark# s X -> mark# X,
                              mark# s X -> active# s mark X,
                              mark# s X -> s# mark X,
                         mark# length X -> mark# X,
                         mark# length X -> active# length mark X,
                         mark# length X -> length# mark X,
                      mark# U71(X1, X2) -> mark# X1,
                      mark# U71(X1, X2) -> active# U71(mark X1, X2),
                      mark# U71(X1, X2) -> U71#(mark X1, X2),
                            mark# nil() -> active# nil(),
                            mark# U81 X -> mark# X,
                            mark# U81 X -> active# U81 mark X,
                            mark# U81 X -> U81# mark X,
                     mark# take(X1, X2) -> mark# X1,
                     mark# take(X1, X2) -> mark# X2,
                     mark# take(X1, X2) -> active# take(mark X1, mark X2),
                     mark# take(X1, X2) -> take#(mark X1, mark X2),
              mark# U91(X1, X2, X3, X4) -> mark# X1,
              mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4),
              mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4),
                      mark# and(X1, X2) -> mark# X1,
                      mark# and(X1, X2) -> active# and(mark X1, X2),
                      mark# and(X1, X2) -> and#(mark X1, X2),
                 mark# isNatIListKind X -> active# isNatIListKind X,
                      mark# isNatKind X -> active# isNatKind X,
                     cons#(X1, mark X2) -> cons#(X1, X2),
                   cons#(X1, active X2) -> cons#(X1, X2),
                     cons#(mark X1, X2) -> cons#(X1, X2),
                   cons#(active X1, X2) -> cons#(X1, X2),
                        active# zeros() -> mark# cons(0(), zeros()),
                        active# zeros() -> cons#(0(), zeros()),
                       active# U12 tt() -> mark# tt(),
         active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
         active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2),
         active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2),
         active# isNatList cons(V1, V2) -> isNatIListKind# V2,
         active# isNatList cons(V1, V2) -> isNatKind# V1,
                active# isNatList nil() -> mark# tt(),
         active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
         active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2),
         active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2),
         active# isNatList take(V1, V2) -> isNatIListKind# V2,
         active# isNatList take(V1, V2) -> isNatKind# V1,
                  active# U11(tt(), V1) -> mark# U12 isNatList V1,
                  active# U11(tt(), V1) -> U12# isNatList V1,
                  active# U11(tt(), V1) -> isNatList# V1,
                       active# U22 tt() -> mark# tt(),
                      active# isNat 0() -> mark# tt(),
                     active# isNat s V1 -> mark# U21(isNatKind V1, V1),
                     active# isNat s V1 -> U21#(isNatKind V1, V1),
                     active# isNat s V1 -> isNatKind# V1,
                active# isNat length V1 -> mark# U11(isNatIListKind V1, V1),
                active# isNat length V1 -> U11#(isNatIListKind V1, V1),
                active# isNat length V1 -> isNatIListKind# V1,
                  active# U21(tt(), V1) -> mark# U22 isNat V1,
                  active# U21(tt(), V1) -> U22# isNat V1,
                  active# U21(tt(), V1) -> isNat# V1,
                       active# U32 tt() -> mark# tt(),
                   active# U31(tt(), V) -> mark# U32 isNatList V,
                   active# U31(tt(), V) -> isNatList# V,
                   active# U31(tt(), V) -> U32# isNatList V,
                  active# U42(tt(), V2) -> mark# U43 isNatIList V2,
                  active# U42(tt(), V2) -> U43# isNatIList V2,
                  active# U42(tt(), V2) -> isNatIList# V2,
              active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2),
              active# U41(tt(), V1, V2) -> isNat# V1,
              active# U41(tt(), V1, V2) -> U42#(isNat V1, V2),
                       active# U43 tt() -> mark# tt(),
                   active# isNatIList V -> mark# U31(isNatIListKind V, V),
                   active# isNatIList V -> U31#(isNatIListKind V, V),
                   active# isNatIList V -> isNatIListKind# V,
        active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
        active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2),
        active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2),
        active# isNatIList cons(V1, V2) -> isNatIListKind# V2,
        active# isNatIList cons(V1, V2) -> isNatKind# V1,
             active# isNatIList zeros() -> mark# tt(),
                  active# U52(tt(), V2) -> mark# U53 isNatList V2,
                  active# U52(tt(), V2) -> isNatList# V2,
                  active# U52(tt(), V2) -> U53# isNatList V2,
              active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2),
              active# U51(tt(), V1, V2) -> isNat# V1,
              active# U51(tt(), V1, V2) -> U52#(isNat V1, V2),
                       active# U53 tt() -> mark# tt(),
                  active# U62(tt(), V2) -> mark# U63 isNatIList V2,
                  active# U62(tt(), V2) -> isNatIList# V2,
                  active# U62(tt(), V2) -> U63# isNatIList V2,
              active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2),
              active# U61(tt(), V1, V2) -> isNat# V1,
              active# U61(tt(), V1, V2) -> U62#(isNat V1, V2),
                       active# U63 tt() -> mark# tt(),
              active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
              active# length cons(N, L) -> isNatList# L,
              active# length cons(N, L) -> isNat# N,
              active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
              active# length cons(N, L) -> and#(isNatList L, isNatIListKind L),
              active# length cons(N, L) -> and#(isNat N, isNatKind N),
              active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)),
              active# length cons(N, L) -> isNatIListKind# L,
              active# length cons(N, L) -> isNatKind# N,
                   active# length nil() -> mark# 0(),
                   active# U71(tt(), L) -> mark# s length L,
                   active# U71(tt(), L) -> s# length L,
                   active# U71(tt(), L) -> length# L,
                       active# U81 tt() -> mark# nil(),
                  active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL),
                  active# take(0(), IL) -> isNatIList# IL,
                  active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL),
                  active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL),
                  active# take(0(), IL) -> isNatIListKind# IL,
         active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
         active# take(s M, cons(N, IL)) -> isNat# N,
         active# take(s M, cons(N, IL)) -> isNat# M,
         active# take(s M, cons(N, IL)) -> isNatIList# IL,
         active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
         active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N),
         active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M),
         active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL),
         active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)),
         active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))),
         active# take(s M, cons(N, IL)) -> isNatIListKind# IL,
         active# take(s M, cons(N, IL)) -> isNatKind# N,
         active# take(s M, cons(N, IL)) -> isNatKind# M,
            active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)),
            active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)),
            active# U91(tt(), IL, M, N) -> take#(M, IL),
                   active# and(tt(), X) -> mark# X,
    active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2),
    active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2),
    active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2,
    active# isNatIListKind cons(V1, V2) -> isNatKind# V1,
         active# isNatIListKind zeros() -> mark# tt(),
           active# isNatIListKind nil() -> mark# tt(),
    active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2),
    active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2),
    active# isNatIListKind take(V1, V2) -> isNatIListKind# V2,
    active# isNatIListKind take(V1, V2) -> isNatKind# V1,
                  active# isNatKind 0() -> mark# tt(),
                 active# isNatKind s V1 -> mark# isNatKind V1,
                 active# isNatKind s V1 -> isNatKind# V1,
            active# isNatKind length V1 -> mark# isNatIListKind V1,
            active# isNatKind length V1 -> isNatIListKind# V1,
                            U12# mark X -> U12# X,
                          U12# active X -> U12# X,
                      isNatList# mark X -> isNatList# X,
                    isNatList# active X -> isNatList# X,
                      U11#(X1, mark X2) -> U11#(X1, X2),
                    U11#(X1, active X2) -> U11#(X1, X2),
                      U11#(mark X1, X2) -> U11#(X1, X2),
                    U11#(active X1, X2) -> U11#(X1, X2),
                            U22# mark X -> U22# X,
                          U22# active X -> U22# X,
                          isNat# mark X -> isNat# X,
                        isNat# active X -> isNat# X,
                      U21#(X1, mark X2) -> U21#(X1, X2),
                    U21#(X1, active X2) -> U21#(X1, X2),
                      U21#(mark X1, X2) -> U21#(X1, X2),
                    U21#(active X1, X2) -> U21#(X1, X2),
                            U32# mark X -> U32# X,
                          U32# active X -> U32# X,
                      U31#(X1, mark X2) -> U31#(X1, X2),
                    U31#(X1, active X2) -> U31#(X1, X2),
                      U31#(mark X1, X2) -> U31#(X1, X2),
                    U31#(active X1, X2) -> U31#(X1, X2),
                      U42#(X1, mark X2) -> U42#(X1, X2),
                    U42#(X1, active X2) -> U42#(X1, X2),
                      U42#(mark X1, X2) -> U42#(X1, X2),
                    U42#(active X1, X2) -> U42#(X1, X2),
                  U41#(X1, X2, mark X3) -> U41#(X1, X2, X3),
                U41#(X1, X2, active X3) -> U41#(X1, X2, X3),
                  U41#(X1, mark X2, X3) -> U41#(X1, X2, X3),
                U41#(X1, active X2, X3) -> U41#(X1, X2, X3),
                  U41#(mark X1, X2, X3) -> U41#(X1, X2, X3),
                U41#(active X1, X2, X3) -> U41#(X1, X2, X3),
                            U43# mark X -> U43# X,
                          U43# active X -> U43# X,
                     isNatIList# mark X -> isNatIList# X,
                   isNatIList# active X -> isNatIList# X,
                      U52#(X1, mark X2) -> U52#(X1, X2),
                    U52#(X1, active X2) -> U52#(X1, X2),
                      U52#(mark X1, X2) -> U52#(X1, X2),
                    U52#(active X1, X2) -> U52#(X1, X2),
                  U51#(X1, X2, mark X3) -> U51#(X1, X2, X3),
                U51#(X1, X2, active X3) -> U51#(X1, X2, X3),
                  U51#(X1, mark X2, X3) -> U51#(X1, X2, X3),
                U51#(X1, active X2, X3) -> U51#(X1, X2, X3),
                  U51#(mark X1, X2, X3) -> U51#(X1, X2, X3),
                U51#(active X1, X2, X3) -> U51#(X1, X2, X3),
                            U53# mark X -> U53# X,
                          U53# active X -> U53# X,
                      U62#(X1, mark X2) -> U62#(X1, X2),
                    U62#(X1, active X2) -> U62#(X1, X2),
                      U62#(mark X1, X2) -> U62#(X1, X2),
                    U62#(active X1, X2) -> U62#(X1, X2),
                  U61#(X1, X2, mark X3) -> U61#(X1, X2, X3),
                U61#(X1, X2, active X3) -> U61#(X1, X2, X3),
                  U61#(X1, mark X2, X3) -> U61#(X1, X2, X3),
                U61#(X1, active X2, X3) -> U61#(X1, X2, X3),
                  U61#(mark X1, X2, X3) -> U61#(X1, X2, X3),
                U61#(active X1, X2, X3) -> U61#(X1, X2, X3),
                            U63# mark X -> U63# X,
                          U63# active X -> U63# X,
                              s# mark X -> s# X,
                            s# active X -> s# X,
                         length# mark X -> length# X,
                       length# active X -> length# X,
                      U71#(X1, mark X2) -> U71#(X1, X2),
                    U71#(X1, active X2) -> U71#(X1, X2),
                      U71#(mark X1, X2) -> U71#(X1, X2),
                    U71#(active X1, X2) -> U71#(X1, X2),
                            U81# mark X -> U81# X,
                          U81# active X -> U81# X,
                     take#(X1, mark X2) -> take#(X1, X2),
                   take#(X1, active X2) -> take#(X1, X2),
                     take#(mark X1, X2) -> take#(X1, X2),
                   take#(active X1, X2) -> take#(X1, X2),
              U91#(X1, X2, X3, mark X4) -> U91#(X1, X2, X3, X4),
            U91#(X1, X2, X3, active X4) -> U91#(X1, X2, X3, X4),
              U91#(X1, X2, mark X3, X4) -> U91#(X1, X2, X3, X4),
            U91#(X1, X2, active X3, X4) -> U91#(X1, X2, X3, X4),
              U91#(X1, mark X2, X3, X4) -> U91#(X1, X2, X3, X4),
            U91#(X1, active X2, X3, X4) -> U91#(X1, X2, X3, X4),
              U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4),
            U91#(active X1, X2, X3, X4) -> U91#(X1, X2, X3, X4),
                      and#(X1, mark X2) -> and#(X1, X2),
                    and#(X1, active X2) -> and#(X1, X2),
                      and#(mark X1, X2) -> and#(X1, X2),
                    and#(active X1, X2) -> and#(X1, X2),
                 isNatIListKind# mark X -> isNatIListKind# X,
               isNatIListKind# active X -> isNatIListKind# X,
                      isNatKind# mark X -> isNatKind# X,
                    isNatKind# active X -> isNatKind# X
   }
  TRS:
  {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                             mark 0() -> active 0(),
                         mark zeros() -> active zeros(),
                           mark U12 X -> active U12 mark X,
                     mark isNatList X -> active isNatList X,
                     mark U11(X1, X2) -> active U11(mark X1, X2),
                            mark tt() -> active tt(),
                           mark U22 X -> active U22 mark X,
                         mark isNat X -> active isNat X,
                     mark U21(X1, X2) -> active U21(mark X1, X2),
                           mark U32 X -> active U32 mark X,
                     mark U31(X1, X2) -> active U31(mark X1, X2),
                     mark U42(X1, X2) -> active U42(mark X1, X2),
                 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                           mark U43 X -> active U43 mark X,
                    mark isNatIList X -> active isNatIList X,
                     mark U52(X1, X2) -> active U52(mark X1, X2),
                 mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                           mark U53 X -> active U53 mark X,
                     mark U62(X1, X2) -> active U62(mark X1, X2),
                 mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                           mark U63 X -> active U63 mark X,
                             mark s X -> active s mark X,
                        mark length X -> active length mark X,
                     mark U71(X1, X2) -> active U71(mark X1, X2),
                           mark nil() -> active nil(),
                           mark U81 X -> active U81 mark X,
                    mark take(X1, X2) -> active take(mark X1, mark X2),
             mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                     mark and(X1, X2) -> active and(mark X1, X2),
                mark isNatIListKind X -> active isNatIListKind X,
                     mark isNatKind X -> active isNatKind X,
                    cons(X1, mark X2) -> cons(X1, X2),
                  cons(X1, active X2) -> cons(X1, X2),
                    cons(mark X1, X2) -> cons(X1, X2),
                  cons(active X1, X2) -> cons(X1, X2),
                       active zeros() -> mark cons(0(), zeros()),
                      active U12 tt() -> mark tt(),
        active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
               active isNatList nil() -> mark tt(),
        active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active U11(tt(), V1) -> mark U12 isNatList V1,
                      active U22 tt() -> mark tt(),
                     active isNat 0() -> mark tt(),
                    active isNat s V1 -> mark U21(isNatKind V1, V1),
               active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                 active U21(tt(), V1) -> mark U22 isNat V1,
                      active U32 tt() -> mark tt(),
                  active U31(tt(), V) -> mark U32 isNatList V,
                 active U42(tt(), V2) -> mark U43 isNatIList V2,
             active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                      active U43 tt() -> mark tt(),
                  active isNatIList V -> mark U31(isNatIListKind V, V),
       active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
            active isNatIList zeros() -> mark tt(),
                 active U52(tt(), V2) -> mark U53 isNatList V2,
             active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                      active U53 tt() -> mark tt(),
                 active U62(tt(), V2) -> mark U63 isNatIList V2,
             active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                      active U63 tt() -> mark tt(),
             active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                  active length nil() -> mark 0(),
                  active U71(tt(), L) -> mark s length L,
                      active U81 tt() -> mark nil(),
                 active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
        active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
           active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                  active and(tt(), X) -> mark X,
   active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
        active isNatIListKind zeros() -> mark tt(),
          active isNatIListKind nil() -> mark tt(),
   active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                 active isNatKind 0() -> mark tt(),
                active isNatKind s V1 -> mark isNatKind V1,
           active isNatKind length V1 -> mark isNatIListKind V1,
                           U12 mark X -> U12 X,
                         U12 active X -> U12 X,
                     isNatList mark X -> isNatList X,
                   isNatList active X -> isNatList X,
                     U11(X1, mark X2) -> U11(X1, X2),
                   U11(X1, active X2) -> U11(X1, X2),
                     U11(mark X1, X2) -> U11(X1, X2),
                   U11(active X1, X2) -> U11(X1, X2),
                           U22 mark X -> U22 X,
                         U22 active X -> U22 X,
                         isNat mark X -> isNat X,
                       isNat active X -> isNat X,
                     U21(X1, mark X2) -> U21(X1, X2),
                   U21(X1, active X2) -> U21(X1, X2),
                     U21(mark X1, X2) -> U21(X1, X2),
                   U21(active X1, X2) -> U21(X1, X2),
                           U32 mark X -> U32 X,
                         U32 active X -> U32 X,
                     U31(X1, mark X2) -> U31(X1, X2),
                   U31(X1, active X2) -> U31(X1, X2),
                     U31(mark X1, X2) -> U31(X1, X2),
                   U31(active X1, X2) -> U31(X1, X2),
                     U42(X1, mark X2) -> U42(X1, X2),
                   U42(X1, active X2) -> U42(X1, X2),
                     U42(mark X1, X2) -> U42(X1, X2),
                   U42(active X1, X2) -> U42(X1, X2),
                 U41(X1, X2, mark X3) -> U41(X1, X2, X3),
               U41(X1, X2, active X3) -> U41(X1, X2, X3),
                 U41(X1, mark X2, X3) -> U41(X1, X2, X3),
               U41(X1, active X2, X3) -> U41(X1, X2, X3),
                 U41(mark X1, X2, X3) -> U41(X1, X2, X3),
               U41(active X1, X2, X3) -> U41(X1, X2, X3),
                           U43 mark X -> U43 X,
                         U43 active X -> U43 X,
                    isNatIList mark X -> isNatIList X,
                  isNatIList active X -> isNatIList X,
                     U52(X1, mark X2) -> U52(X1, X2),
                   U52(X1, active X2) -> U52(X1, X2),
                     U52(mark X1, X2) -> U52(X1, X2),
                   U52(active X1, X2) -> U52(X1, X2),
                 U51(X1, X2, mark X3) -> U51(X1, X2, X3),
               U51(X1, X2, active X3) -> U51(X1, X2, X3),
                 U51(X1, mark X2, X3) -> U51(X1, X2, X3),
               U51(X1, active X2, X3) -> U51(X1, X2, X3),
                 U51(mark X1, X2, X3) -> U51(X1, X2, X3),
               U51(active X1, X2, X3) -> U51(X1, X2, X3),
                           U53 mark X -> U53 X,
                         U53 active X -> U53 X,
                     U62(X1, mark X2) -> U62(X1, X2),
                   U62(X1, active X2) -> U62(X1, X2),
                     U62(mark X1, X2) -> U62(X1, X2),
                   U62(active X1, X2) -> U62(X1, X2),
                 U61(X1, X2, mark X3) -> U61(X1, X2, X3),
               U61(X1, X2, active X3) -> U61(X1, X2, X3),
                 U61(X1, mark X2, X3) -> U61(X1, X2, X3),
               U61(X1, active X2, X3) -> U61(X1, X2, X3),
                 U61(mark X1, X2, X3) -> U61(X1, X2, X3),
               U61(active X1, X2, X3) -> U61(X1, X2, X3),
                           U63 mark X -> U63 X,
                         U63 active X -> U63 X,
                             s mark X -> s X,
                           s active X -> s X,
                        length mark X -> length X,
                      length active X -> length X,
                     U71(X1, mark X2) -> U71(X1, X2),
                   U71(X1, active X2) -> U71(X1, X2),
                     U71(mark X1, X2) -> U71(X1, X2),
                   U71(active X1, X2) -> U71(X1, X2),
                           U81 mark X -> U81 X,
                         U81 active X -> U81 X,
                    take(X1, mark X2) -> take(X1, X2),
                  take(X1, active X2) -> take(X1, X2),
                    take(mark X1, X2) -> take(X1, X2),
                  take(active X1, X2) -> take(X1, X2),
             U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
           U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
             U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
           U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
             U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
           U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
             U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
           U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                     and(X1, mark X2) -> and(X1, X2),
                   and(X1, active X2) -> and(X1, X2),
                     and(mark X1, X2) -> and(X1, X2),
                   and(active X1, X2) -> and(X1, X2),
                isNatIListKind mark X -> isNatIListKind X,
              isNatIListKind active X -> isNatIListKind X,
                     isNatKind mark X -> isNatKind X,
                   isNatKind active X -> isNatKind X}
  UR:
   {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                              mark 0() -> active 0(),
                          mark zeros() -> active zeros(),
                            mark U12 X -> active U12 mark X,
                      mark isNatList X -> active isNatList X,
                      mark U11(X1, X2) -> active U11(mark X1, X2),
                             mark tt() -> active tt(),
                            mark U22 X -> active U22 mark X,
                          mark isNat X -> active isNat X,
                      mark U21(X1, X2) -> active U21(mark X1, X2),
                            mark U32 X -> active U32 mark X,
                      mark U31(X1, X2) -> active U31(mark X1, X2),
                      mark U42(X1, X2) -> active U42(mark X1, X2),
                  mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                            mark U43 X -> active U43 mark X,
                     mark isNatIList X -> active isNatIList X,
                      mark U52(X1, X2) -> active U52(mark X1, X2),
                  mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                            mark U53 X -> active U53 mark X,
                      mark U62(X1, X2) -> active U62(mark X1, X2),
                  mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                            mark U63 X -> active U63 mark X,
                              mark s X -> active s mark X,
                         mark length X -> active length mark X,
                      mark U71(X1, X2) -> active U71(mark X1, X2),
                            mark nil() -> active nil(),
                            mark U81 X -> active U81 mark X,
                     mark take(X1, X2) -> active take(mark X1, mark X2),
              mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                      mark and(X1, X2) -> active and(mark X1, X2),
                 mark isNatIListKind X -> active isNatIListKind X,
                      mark isNatKind X -> active isNatKind X,
                     cons(X1, mark X2) -> cons(X1, X2),
                   cons(X1, active X2) -> cons(X1, X2),
                     cons(mark X1, X2) -> cons(X1, X2),
                   cons(active X1, X2) -> cons(X1, X2),
                        active zeros() -> mark cons(0(), zeros()),
                       active U12 tt() -> mark tt(),
         active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                active isNatList nil() -> mark tt(),
         active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                  active U11(tt(), V1) -> mark U12 isNatList V1,
                       active U22 tt() -> mark tt(),
                      active isNat 0() -> mark tt(),
                     active isNat s V1 -> mark U21(isNatKind V1, V1),
                active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                  active U21(tt(), V1) -> mark U22 isNat V1,
                       active U32 tt() -> mark tt(),
                   active U31(tt(), V) -> mark U32 isNatList V,
                  active U42(tt(), V2) -> mark U43 isNatIList V2,
              active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                       active U43 tt() -> mark tt(),
                   active isNatIList V -> mark U31(isNatIListKind V, V),
        active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
             active isNatIList zeros() -> mark tt(),
                  active U52(tt(), V2) -> mark U53 isNatList V2,
              active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                       active U53 tt() -> mark tt(),
                  active U62(tt(), V2) -> mark U63 isNatIList V2,
              active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                       active U63 tt() -> mark tt(),
              active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                   active length nil() -> mark 0(),
                   active U71(tt(), L) -> mark s length L,
                       active U81 tt() -> mark nil(),
                  active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
         active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
            active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                   active and(tt(), X) -> mark X,
    active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
         active isNatIListKind zeros() -> mark tt(),
           active isNatIListKind nil() -> mark tt(),
    active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                  active isNatKind 0() -> mark tt(),
                 active isNatKind s V1 -> mark isNatKind V1,
            active isNatKind length V1 -> mark isNatIListKind V1,
                            U12 mark X -> U12 X,
                          U12 active X -> U12 X,
                      isNatList mark X -> isNatList X,
                    isNatList active X -> isNatList X,
                      U11(X1, mark X2) -> U11(X1, X2),
                    U11(X1, active X2) -> U11(X1, X2),
                      U11(mark X1, X2) -> U11(X1, X2),
                    U11(active X1, X2) -> U11(X1, X2),
                            U22 mark X -> U22 X,
                          U22 active X -> U22 X,
                          isNat mark X -> isNat X,
                        isNat active X -> isNat X,
                      U21(X1, mark X2) -> U21(X1, X2),
                    U21(X1, active X2) -> U21(X1, X2),
                      U21(mark X1, X2) -> U21(X1, X2),
                    U21(active X1, X2) -> U21(X1, X2),
                            U32 mark X -> U32 X,
                          U32 active X -> U32 X,
                      U31(X1, mark X2) -> U31(X1, X2),
                    U31(X1, active X2) -> U31(X1, X2),
                      U31(mark X1, X2) -> U31(X1, X2),
                    U31(active X1, X2) -> U31(X1, X2),
                      U42(X1, mark X2) -> U42(X1, X2),
                    U42(X1, active X2) -> U42(X1, X2),
                      U42(mark X1, X2) -> U42(X1, X2),
                    U42(active X1, X2) -> U42(X1, X2),
                  U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                U41(X1, X2, active X3) -> U41(X1, X2, X3),
                  U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                U41(X1, active X2, X3) -> U41(X1, X2, X3),
                  U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                U41(active X1, X2, X3) -> U41(X1, X2, X3),
                            U43 mark X -> U43 X,
                          U43 active X -> U43 X,
                     isNatIList mark X -> isNatIList X,
                   isNatIList active X -> isNatIList X,
                      U52(X1, mark X2) -> U52(X1, X2),
                    U52(X1, active X2) -> U52(X1, X2),
                      U52(mark X1, X2) -> U52(X1, X2),
                    U52(active X1, X2) -> U52(X1, X2),
                  U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                U51(X1, X2, active X3) -> U51(X1, X2, X3),
                  U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                U51(X1, active X2, X3) -> U51(X1, X2, X3),
                  U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                U51(active X1, X2, X3) -> U51(X1, X2, X3),
                            U53 mark X -> U53 X,
                          U53 active X -> U53 X,
                      U62(X1, mark X2) -> U62(X1, X2),
                    U62(X1, active X2) -> U62(X1, X2),
                      U62(mark X1, X2) -> U62(X1, X2),
                    U62(active X1, X2) -> U62(X1, X2),
                  U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                U61(X1, X2, active X3) -> U61(X1, X2, X3),
                  U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                U61(X1, active X2, X3) -> U61(X1, X2, X3),
                  U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                U61(active X1, X2, X3) -> U61(X1, X2, X3),
                            U63 mark X -> U63 X,
                          U63 active X -> U63 X,
                              s mark X -> s X,
                            s active X -> s X,
                         length mark X -> length X,
                       length active X -> length X,
                      U71(X1, mark X2) -> U71(X1, X2),
                    U71(X1, active X2) -> U71(X1, X2),
                      U71(mark X1, X2) -> U71(X1, X2),
                    U71(active X1, X2) -> U71(X1, X2),
                            U81 mark X -> U81 X,
                          U81 active X -> U81 X,
                     take(X1, mark X2) -> take(X1, X2),
                   take(X1, active X2) -> take(X1, X2),
                     take(mark X1, X2) -> take(X1, X2),
                   take(active X1, X2) -> take(X1, X2),
              U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
            U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
              U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
            U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
              U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
            U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
              U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
            U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                      and(X1, mark X2) -> and(X1, X2),
                    and(X1, active X2) -> and(X1, X2),
                      and(mark X1, X2) -> and(X1, X2),
                    and(active X1, X2) -> and(X1, X2),
                 isNatIListKind mark X -> isNatIListKind X,
               isNatIListKind active X -> isNatIListKind X,
                      isNatKind mark X -> isNatKind X,
                    isNatKind active X -> isNatKind X,
                               a(x, y) -> x,
                               a(x, y) -> y}
   EDG:
    {
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatKind s V1 -> isNatKind# V1)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatKind 0() -> mark# tt())
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatIListKind nil() -> mark# tt())
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatIListKind zeros() -> mark# tt())
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# and(tt(), X) -> mark# X)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# take(0(), IL) -> isNatIListKind# IL)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# take(0(), IL) -> isNatIList# IL)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U81 tt() -> mark# nil())
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U71(tt(), L) -> length# L)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U71(tt(), L) -> s# length L)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U71(tt(), L) -> mark# s length L)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# length nil() -> mark# 0())
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# length cons(N, L) -> isNatKind# N)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# length cons(N, L) -> isNatIListKind# L)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# length cons(N, L) -> isNat# N)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# length cons(N, L) -> isNatList# L)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U63 tt() -> mark# tt())
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U62(tt(), V2) -> isNatIList# V2)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U53 tt() -> mark# tt())
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U52(tt(), V2) -> isNatList# V2)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatIList zeros() -> mark# tt())
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatIList V -> isNatIListKind# V)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U43 tt() -> mark# tt())
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U42(tt(), V2) -> isNatIList# V2)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U31(tt(), V) -> U32# isNatList V)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U31(tt(), V) -> isNatList# V)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U32 tt() -> mark# tt())
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U21(tt(), V1) -> isNat# V1)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U21(tt(), V1) -> U22# isNat V1)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNat length V1 -> isNatIListKind# V1)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNat s V1 -> isNatKind# V1)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNat 0() -> mark# tt())
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U22 tt() -> mark# tt())
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U11(tt(), V1) -> isNatList# V1)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatList nil() -> mark# tt())
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# U12 tt() -> mark# tt())
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# zeros() -> cons#(0(), zeros()))
     (mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3), active# zeros() -> mark# cons(0(), zeros()))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatKind s V1 -> isNatKind# V1)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatKind 0() -> mark# tt())
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatIListKind nil() -> mark# tt())
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatIListKind zeros() -> mark# tt())
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# and(tt(), X) -> mark# X)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# take(0(), IL) -> isNatIListKind# IL)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# take(0(), IL) -> isNatIList# IL)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U81 tt() -> mark# nil())
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U71(tt(), L) -> length# L)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U71(tt(), L) -> s# length L)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U71(tt(), L) -> mark# s length L)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# length nil() -> mark# 0())
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# length cons(N, L) -> isNatKind# N)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# length cons(N, L) -> isNatIListKind# L)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# length cons(N, L) -> isNat# N)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# length cons(N, L) -> isNatList# L)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U63 tt() -> mark# tt())
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U62(tt(), V2) -> isNatIList# V2)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U53 tt() -> mark# tt())
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U52(tt(), V2) -> isNatList# V2)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatIList zeros() -> mark# tt())
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatIList V -> isNatIListKind# V)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U43 tt() -> mark# tt())
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U42(tt(), V2) -> isNatIList# V2)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U31(tt(), V) -> U32# isNatList V)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U31(tt(), V) -> isNatList# V)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U32 tt() -> mark# tt())
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U21(tt(), V1) -> isNat# V1)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U21(tt(), V1) -> U22# isNat V1)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNat length V1 -> isNatIListKind# V1)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNat s V1 -> isNatKind# V1)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNat 0() -> mark# tt())
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U22 tt() -> mark# tt())
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U11(tt(), V1) -> isNatList# V1)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatList nil() -> mark# tt())
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# U12 tt() -> mark# tt())
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# zeros() -> cons#(0(), zeros()))
     (mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4), active# zeros() -> mark# cons(0(), zeros()))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# isNatKind X -> active# isNatKind X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# and(X1, X2) -> mark# X1)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# take(X1, X2) -> mark# X2)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# take(X1, X2) -> mark# X1)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U81 X -> U81# mark X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U81 X -> active# U81 mark X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U81 X -> mark# X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# nil() -> active# nil())
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U71(X1, X2) -> mark# X1)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# length X -> length# mark X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# length X -> active# length mark X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# length X -> mark# X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# s X -> s# mark X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# s X -> active# s mark X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# s X -> mark# X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U63 X -> U63# mark X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U63 X -> active# U63 mark X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U63 X -> mark# X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U61(X1, X2, X3) -> mark# X1)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U62(X1, X2) -> mark# X1)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U53 X -> U53# mark X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U53 X -> active# U53 mark X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U53 X -> mark# X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U51(X1, X2, X3) -> mark# X1)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U52(X1, X2) -> mark# X1)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# isNatIList X -> active# isNatIList X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U43 X -> U43# mark X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U43 X -> active# U43 mark X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U43 X -> mark# X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U41(X1, X2, X3) -> mark# X1)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U42(X1, X2) -> mark# X1)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U31(X1, X2) -> mark# X1)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U32 X -> U32# mark X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U32 X -> active# U32 mark X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U32 X -> mark# X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U21(X1, X2) -> mark# X1)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# isNat X -> active# isNat X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U22 X -> U22# mark X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U22 X -> active# U22 mark X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U22 X -> mark# X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# tt() -> active# tt())
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U11(X1, X2) -> mark# X1)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# isNatList X -> active# isNatList X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U12 X -> U12# mark X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U12 X -> active# U12 mark X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U12 X -> mark# X)
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# zeros() -> active# zeros())
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# 0() -> active# 0())
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# cons(X1, X2) -> mark# X1)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# isNatKind X -> active# isNatKind X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# and(X1, X2) -> mark# X1)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# take(X1, X2) -> mark# X2)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# take(X1, X2) -> mark# X1)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U81 X -> U81# mark X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U81 X -> active# U81 mark X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U81 X -> mark# X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# nil() -> active# nil())
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U71(X1, X2) -> mark# X1)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# length X -> length# mark X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# length X -> active# length mark X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# length X -> mark# X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# s X -> s# mark X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# s X -> active# s mark X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# s X -> mark# X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U63 X -> U63# mark X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U63 X -> active# U63 mark X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U63 X -> mark# X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U61(X1, X2, X3) -> mark# X1)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U62(X1, X2) -> mark# X1)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U53 X -> U53# mark X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U53 X -> active# U53 mark X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U53 X -> mark# X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U51(X1, X2, X3) -> mark# X1)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U52(X1, X2) -> mark# X1)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# isNatIList X -> active# isNatIList X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U43 X -> U43# mark X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U43 X -> active# U43 mark X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U43 X -> mark# X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U41(X1, X2, X3) -> mark# X1)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U42(X1, X2) -> mark# X1)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U31(X1, X2) -> mark# X1)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U32 X -> U32# mark X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U32 X -> active# U32 mark X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U32 X -> mark# X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U21(X1, X2) -> mark# X1)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# isNat X -> active# isNat X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U22 X -> U22# mark X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U22 X -> active# U22 mark X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U22 X -> mark# X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# tt() -> active# tt())
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U11(X1, X2) -> mark# X1)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# isNatList X -> active# isNatList X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U12 X -> U12# mark X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U12 X -> active# U12 mark X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# U12 X -> mark# X)
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# zeros() -> active# zeros())
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# 0() -> active# 0())
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), mark# cons(X1, X2) -> mark# X1)
     (mark# take(X1, X2) -> mark# X2, mark# isNatKind X -> active# isNatKind X)
     (mark# take(X1, X2) -> mark# X2, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# take(X1, X2) -> mark# X2, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# take(X1, X2) -> mark# X2, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# take(X1, X2) -> mark# X2, mark# and(X1, X2) -> mark# X1)
     (mark# take(X1, X2) -> mark# X2, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# take(X1, X2) -> mark# X2, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# take(X1, X2) -> mark# X2, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> mark# X2)
     (mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> mark# X1)
     (mark# take(X1, X2) -> mark# X2, mark# U81 X -> U81# mark X)
     (mark# take(X1, X2) -> mark# X2, mark# U81 X -> active# U81 mark X)
     (mark# take(X1, X2) -> mark# X2, mark# U81 X -> mark# X)
     (mark# take(X1, X2) -> mark# X2, mark# nil() -> active# nil())
     (mark# take(X1, X2) -> mark# X2, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# take(X1, X2) -> mark# X2, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# take(X1, X2) -> mark# X2, mark# U71(X1, X2) -> mark# X1)
     (mark# take(X1, X2) -> mark# X2, mark# length X -> length# mark X)
     (mark# take(X1, X2) -> mark# X2, mark# length X -> active# length mark X)
     (mark# take(X1, X2) -> mark# X2, mark# length X -> mark# X)
     (mark# take(X1, X2) -> mark# X2, mark# s X -> s# mark X)
     (mark# take(X1, X2) -> mark# X2, mark# s X -> active# s mark X)
     (mark# take(X1, X2) -> mark# X2, mark# s X -> mark# X)
     (mark# take(X1, X2) -> mark# X2, mark# U63 X -> U63# mark X)
     (mark# take(X1, X2) -> mark# X2, mark# U63 X -> active# U63 mark X)
     (mark# take(X1, X2) -> mark# X2, mark# U63 X -> mark# X)
     (mark# take(X1, X2) -> mark# X2, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# take(X1, X2) -> mark# X2, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# take(X1, X2) -> mark# X2, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# take(X1, X2) -> mark# X2, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# take(X1, X2) -> mark# X2, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# take(X1, X2) -> mark# X2, mark# U62(X1, X2) -> mark# X1)
     (mark# take(X1, X2) -> mark# X2, mark# U53 X -> U53# mark X)
     (mark# take(X1, X2) -> mark# X2, mark# U53 X -> active# U53 mark X)
     (mark# take(X1, X2) -> mark# X2, mark# U53 X -> mark# X)
     (mark# take(X1, X2) -> mark# X2, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# take(X1, X2) -> mark# X2, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# take(X1, X2) -> mark# X2, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# take(X1, X2) -> mark# X2, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# take(X1, X2) -> mark# X2, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# take(X1, X2) -> mark# X2, mark# U52(X1, X2) -> mark# X1)
     (mark# take(X1, X2) -> mark# X2, mark# isNatIList X -> active# isNatIList X)
     (mark# take(X1, X2) -> mark# X2, mark# U43 X -> U43# mark X)
     (mark# take(X1, X2) -> mark# X2, mark# U43 X -> active# U43 mark X)
     (mark# take(X1, X2) -> mark# X2, mark# U43 X -> mark# X)
     (mark# take(X1, X2) -> mark# X2, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# take(X1, X2) -> mark# X2, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# take(X1, X2) -> mark# X2, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# take(X1, X2) -> mark# X2, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# take(X1, X2) -> mark# X2, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# take(X1, X2) -> mark# X2, mark# U42(X1, X2) -> mark# X1)
     (mark# take(X1, X2) -> mark# X2, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# take(X1, X2) -> mark# X2, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# take(X1, X2) -> mark# X2, mark# U31(X1, X2) -> mark# X1)
     (mark# take(X1, X2) -> mark# X2, mark# U32 X -> U32# mark X)
     (mark# take(X1, X2) -> mark# X2, mark# U32 X -> active# U32 mark X)
     (mark# take(X1, X2) -> mark# X2, mark# U32 X -> mark# X)
     (mark# take(X1, X2) -> mark# X2, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# take(X1, X2) -> mark# X2, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# take(X1, X2) -> mark# X2, mark# U21(X1, X2) -> mark# X1)
     (mark# take(X1, X2) -> mark# X2, mark# isNat X -> active# isNat X)
     (mark# take(X1, X2) -> mark# X2, mark# U22 X -> U22# mark X)
     (mark# take(X1, X2) -> mark# X2, mark# U22 X -> active# U22 mark X)
     (mark# take(X1, X2) -> mark# X2, mark# U22 X -> mark# X)
     (mark# take(X1, X2) -> mark# X2, mark# tt() -> active# tt())
     (mark# take(X1, X2) -> mark# X2, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# take(X1, X2) -> mark# X2, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# take(X1, X2) -> mark# X2, mark# U11(X1, X2) -> mark# X1)
     (mark# take(X1, X2) -> mark# X2, mark# isNatList X -> active# isNatList X)
     (mark# take(X1, X2) -> mark# X2, mark# U12 X -> U12# mark X)
     (mark# take(X1, X2) -> mark# X2, mark# U12 X -> active# U12 mark X)
     (mark# take(X1, X2) -> mark# X2, mark# U12 X -> mark# X)
     (mark# take(X1, X2) -> mark# X2, mark# zeros() -> active# zeros())
     (mark# take(X1, X2) -> mark# X2, mark# 0() -> active# 0())
     (mark# take(X1, X2) -> mark# X2, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# take(X1, X2) -> mark# X2, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# take(X1, X2) -> mark# X2, mark# cons(X1, X2) -> mark# X1)
     (active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), and#(active X1, X2) -> and#(X1, X2))
     (active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), and#(mark X1, X2) -> and#(X1, X2))
     (active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), and#(X1, active X2) -> and#(X1, X2))
     (active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), and#(X1, mark X2) -> and#(X1, X2))
     (active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)), cons#(active X1, X2) -> cons#(X1, X2))
     (active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)), cons#(mark X1, X2) -> cons#(X1, X2))
     (active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)), cons#(X1, active X2) -> cons#(X1, X2))
     (active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)), cons#(X1, mark X2) -> cons#(X1, X2))
     (active# take(s M, cons(N, IL)) -> isNatKind# M, isNatKind# active X -> isNatKind# X)
     (active# take(s M, cons(N, IL)) -> isNatKind# M, isNatKind# mark X -> isNatKind# X)
     (active# isNatIList V -> isNatIListKind# V, isNatIListKind# active X -> isNatIListKind# X)
     (active# isNatIList V -> isNatIListKind# V, isNatIListKind# mark X -> isNatIListKind# X)
     (active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2), U51#(active X1, X2, X3) -> U51#(X1, X2, X3))
     (active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2), U51#(mark X1, X2, X3) -> U51#(X1, X2, X3))
     (active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2), U51#(X1, active X2, X3) -> U51#(X1, X2, X3))
     (active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2), U51#(X1, mark X2, X3) -> U51#(X1, X2, X3))
     (active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2), U51#(X1, X2, active X3) -> U51#(X1, X2, X3))
     (active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2), U51#(X1, X2, mark X3) -> U51#(X1, X2, X3))
     (active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2), U41#(active X1, X2, X3) -> U41#(X1, X2, X3))
     (active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3))
     (active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2), U41#(X1, active X2, X3) -> U41#(X1, X2, X3))
     (active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3))
     (active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2), U41#(X1, X2, active X3) -> U41#(X1, X2, X3))
     (active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2), U41#(X1, X2, mark X3) -> U41#(X1, X2, X3))
     (U91#(X1, X2, X3, mark X4) -> U91#(X1, X2, X3, X4), U91#(active X1, X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, X3, mark X4) -> U91#(X1, X2, X3, X4), U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, X3, mark X4) -> U91#(X1, X2, X3, X4), U91#(X1, active X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, X3, mark X4) -> U91#(X1, X2, X3, X4), U91#(X1, mark X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, X3, mark X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, active X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, X3, mark X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, mark X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, X3, mark X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, X3, active X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, X3, mark X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, X3, mark X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, mark X3, X4) -> U91#(X1, X2, X3, X4), U91#(active X1, X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, mark X3, X4) -> U91#(X1, X2, X3, X4), U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, mark X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, active X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, mark X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, mark X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, mark X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, active X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, mark X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, mark X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, mark X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, X3, active X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, mark X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, X3, mark X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, mark X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(active X1, X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, mark X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, mark X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, active X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, mark X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, mark X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, mark X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, active X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, mark X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, mark X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, mark X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, X3, active X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, mark X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, X3, mark X4) -> U91#(X1, X2, X3, X4))
     (U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(active X1, X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, active X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, mark X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, active X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, mark X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, X3, active X4) -> U91#(X1, X2, X3, X4))
     (U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, X3, mark X4) -> U91#(X1, X2, X3, X4))
     (active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), U91#(active X1, X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), U91#(X1, active X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), U91#(X1, mark X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), U91#(X1, X2, active X3, X4) -> U91#(X1, X2, X3, X4))
     (active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), U91#(X1, X2, mark X3, X4) -> U91#(X1, X2, X3, X4))
     (active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), U91#(X1, X2, X3, active X4) -> U91#(X1, X2, X3, X4))
     (active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), U91#(X1, X2, X3, mark X4) -> U91#(X1, X2, X3, X4))
     (active# take(0(), IL) -> isNatIListKind# IL, isNatIListKind# active X -> isNatIListKind# X)
     (active# take(0(), IL) -> isNatIListKind# IL, isNatIListKind# mark X -> isNatIListKind# X)
     (active# take(s M, cons(N, IL)) -> isNatIListKind# IL, isNatIListKind# active X -> isNatIListKind# X)
     (active# take(s M, cons(N, IL)) -> isNatIListKind# IL, isNatIListKind# mark X -> isNatIListKind# X)
     (active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(active X1, X2) -> and#(X1, X2))
     (active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(mark X1, X2) -> and#(X1, X2))
     (active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(X1, active X2) -> and#(X1, X2))
     (active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(X1, mark X2) -> and#(X1, X2))
     (active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(active X1, X2) -> and#(X1, X2))
     (active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(mark X1, X2) -> and#(X1, X2))
     (active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(X1, active X2) -> and#(X1, X2))
     (active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(X1, mark X2) -> and#(X1, X2))
     (active# length cons(N, L) -> and#(isNat N, isNatKind N), and#(active X1, X2) -> and#(X1, X2))
     (active# length cons(N, L) -> and#(isNat N, isNatKind N), and#(mark X1, X2) -> and#(X1, X2))
     (active# length cons(N, L) -> and#(isNat N, isNatKind N), and#(X1, active X2) -> and#(X1, X2))
     (active# length cons(N, L) -> and#(isNat N, isNatKind N), and#(X1, mark X2) -> and#(X1, X2))
     (active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N), and#(active X1, X2) -> and#(X1, X2))
     (active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N), and#(mark X1, X2) -> and#(X1, X2))
     (active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N), and#(X1, active X2) -> and#(X1, X2))
     (active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N), and#(X1, mark X2) -> and#(X1, X2))
     (active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL), and#(active X1, X2) -> and#(X1, X2))
     (active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL), and#(mark X1, X2) -> and#(X1, X2))
     (active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL), and#(X1, active X2) -> and#(X1, X2))
     (active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL), and#(X1, mark X2) -> and#(X1, X2))
     (active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(active X1, X2) -> and#(X1, X2))
     (active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(mark X1, X2) -> and#(X1, X2))
     (active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(X1, active X2) -> and#(X1, X2))
     (active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(X1, mark X2) -> and#(X1, X2))
     (active# U41(tt(), V1, V2) -> U42#(isNat V1, V2), U42#(active X1, X2) -> U42#(X1, X2))
     (active# U41(tt(), V1, V2) -> U42#(isNat V1, V2), U42#(mark X1, X2) -> U42#(X1, X2))
     (active# U41(tt(), V1, V2) -> U42#(isNat V1, V2), U42#(X1, active X2) -> U42#(X1, X2))
     (active# U41(tt(), V1, V2) -> U42#(isNat V1, V2), U42#(X1, mark X2) -> U42#(X1, X2))
     (active# U61(tt(), V1, V2) -> U62#(isNat V1, V2), U62#(active X1, X2) -> U62#(X1, X2))
     (active# U61(tt(), V1, V2) -> U62#(isNat V1, V2), U62#(mark X1, X2) -> U62#(X1, X2))
     (active# U61(tt(), V1, V2) -> U62#(isNat V1, V2), U62#(X1, active X2) -> U62#(X1, X2))
     (active# U61(tt(), V1, V2) -> U62#(isNat V1, V2), U62#(X1, mark X2) -> U62#(X1, X2))
     (active# isNatList take(V1, V2) -> isNatIListKind# V2, isNatIListKind# active X -> isNatIListKind# X)
     (active# isNatList take(V1, V2) -> isNatIListKind# V2, isNatIListKind# mark X -> isNatIListKind# X)
     (active# isNatIList cons(V1, V2) -> isNatIListKind# V2, isNatIListKind# active X -> isNatIListKind# X)
     (active# isNatIList cons(V1, V2) -> isNatIListKind# V2, isNatIListKind# mark X -> isNatIListKind# X)
     (active# U62(tt(), V2) -> isNatIList# V2, isNatIList# active X -> isNatIList# X)
     (active# U62(tt(), V2) -> isNatIList# V2, isNatIList# mark X -> isNatIList# X)
     (active# isNatIListKind take(V1, V2) -> isNatIListKind# V2, isNatIListKind# active X -> isNatIListKind# X)
     (active# isNatIListKind take(V1, V2) -> isNatIListKind# V2, isNatIListKind# mark X -> isNatIListKind# X)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatKind s V1 -> isNatKind# V1)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatKind 0() -> mark# tt())
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatIListKind nil() -> mark# tt())
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatIListKind zeros() -> mark# tt())
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# and(tt(), X) -> mark# X)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# take(0(), IL) -> isNatIListKind# IL)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# take(0(), IL) -> isNatIList# IL)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U81 tt() -> mark# nil())
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U71(tt(), L) -> length# L)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U71(tt(), L) -> s# length L)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U71(tt(), L) -> mark# s length L)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# length nil() -> mark# 0())
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# length cons(N, L) -> isNatKind# N)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# length cons(N, L) -> isNatIListKind# L)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# length cons(N, L) -> isNat# N)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# length cons(N, L) -> isNatList# L)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U63 tt() -> mark# tt())
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U62(tt(), V2) -> isNatIList# V2)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U53 tt() -> mark# tt())
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U52(tt(), V2) -> isNatList# V2)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatIList zeros() -> mark# tt())
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatIList V -> isNatIListKind# V)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U43 tt() -> mark# tt())
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U42(tt(), V2) -> isNatIList# V2)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U31(tt(), V) -> U32# isNatList V)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U31(tt(), V) -> isNatList# V)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U32 tt() -> mark# tt())
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U21(tt(), V1) -> isNat# V1)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U21(tt(), V1) -> U22# isNat V1)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNat length V1 -> isNatIListKind# V1)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNat s V1 -> isNatKind# V1)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNat 0() -> mark# tt())
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U22 tt() -> mark# tt())
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U11(tt(), V1) -> isNatList# V1)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatList nil() -> mark# tt())
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U12 tt() -> mark# tt())
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# zeros() -> cons#(0(), zeros()))
     (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# zeros() -> mark# cons(0(), zeros()))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatKind s V1 -> isNatKind# V1)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatKind 0() -> mark# tt())
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatIListKind nil() -> mark# tt())
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatIListKind zeros() -> mark# tt())
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# and(tt(), X) -> mark# X)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# take(0(), IL) -> isNatIListKind# IL)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# take(0(), IL) -> isNatIList# IL)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U81 tt() -> mark# nil())
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U71(tt(), L) -> length# L)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U71(tt(), L) -> s# length L)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U71(tt(), L) -> mark# s length L)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# length nil() -> mark# 0())
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# length cons(N, L) -> isNatKind# N)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# length cons(N, L) -> isNatIListKind# L)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# length cons(N, L) -> isNat# N)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# length cons(N, L) -> isNatList# L)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U63 tt() -> mark# tt())
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U62(tt(), V2) -> isNatIList# V2)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U53 tt() -> mark# tt())
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U52(tt(), V2) -> isNatList# V2)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatIList zeros() -> mark# tt())
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatIList V -> isNatIListKind# V)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U43 tt() -> mark# tt())
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U42(tt(), V2) -> isNatIList# V2)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U31(tt(), V) -> U32# isNatList V)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U31(tt(), V) -> isNatList# V)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U32 tt() -> mark# tt())
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U21(tt(), V1) -> isNat# V1)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U21(tt(), V1) -> U22# isNat V1)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNat length V1 -> isNatIListKind# V1)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNat s V1 -> isNatKind# V1)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNat 0() -> mark# tt())
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U22 tt() -> mark# tt())
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U11(tt(), V1) -> isNatList# V1)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatList nil() -> mark# tt())
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U12 tt() -> mark# tt())
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# zeros() -> cons#(0(), zeros()))
     (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# zeros() -> mark# cons(0(), zeros()))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatKind s V1 -> isNatKind# V1)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatKind 0() -> mark# tt())
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatIListKind nil() -> mark# tt())
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatIListKind zeros() -> mark# tt())
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# and(tt(), X) -> mark# X)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# take(0(), IL) -> isNatIListKind# IL)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# take(0(), IL) -> isNatIList# IL)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U81 tt() -> mark# nil())
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U71(tt(), L) -> length# L)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U71(tt(), L) -> s# length L)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U71(tt(), L) -> mark# s length L)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# length nil() -> mark# 0())
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# length cons(N, L) -> isNatKind# N)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# length cons(N, L) -> isNatIListKind# L)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# length cons(N, L) -> isNat# N)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# length cons(N, L) -> isNatList# L)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U63 tt() -> mark# tt())
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U62(tt(), V2) -> isNatIList# V2)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U53 tt() -> mark# tt())
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U52(tt(), V2) -> isNatList# V2)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatIList zeros() -> mark# tt())
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatIList V -> isNatIListKind# V)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U43 tt() -> mark# tt())
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U42(tt(), V2) -> isNatIList# V2)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U31(tt(), V) -> U32# isNatList V)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U31(tt(), V) -> isNatList# V)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U32 tt() -> mark# tt())
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U21(tt(), V1) -> isNat# V1)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U21(tt(), V1) -> U22# isNat V1)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNat length V1 -> isNatIListKind# V1)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNat s V1 -> isNatKind# V1)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNat 0() -> mark# tt())
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U22 tt() -> mark# tt())
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U11(tt(), V1) -> isNatList# V1)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatList nil() -> mark# tt())
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# U12 tt() -> mark# tt())
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# zeros() -> cons#(0(), zeros()))
     (mark# U52(X1, X2) -> active# U52(mark X1, X2), active# zeros() -> mark# cons(0(), zeros()))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatKind s V1 -> isNatKind# V1)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatKind 0() -> mark# tt())
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatIListKind nil() -> mark# tt())
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatIListKind zeros() -> mark# tt())
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# and(tt(), X) -> mark# X)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# take(0(), IL) -> isNatIListKind# IL)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# take(0(), IL) -> isNatIList# IL)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U81 tt() -> mark# nil())
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U71(tt(), L) -> length# L)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U71(tt(), L) -> s# length L)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U71(tt(), L) -> mark# s length L)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# length nil() -> mark# 0())
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# length cons(N, L) -> isNatKind# N)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# length cons(N, L) -> isNatIListKind# L)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# length cons(N, L) -> isNat# N)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# length cons(N, L) -> isNatList# L)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U63 tt() -> mark# tt())
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U62(tt(), V2) -> isNatIList# V2)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U53 tt() -> mark# tt())
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U52(tt(), V2) -> isNatList# V2)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatIList zeros() -> mark# tt())
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatIList V -> isNatIListKind# V)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U43 tt() -> mark# tt())
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U42(tt(), V2) -> isNatIList# V2)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U31(tt(), V) -> U32# isNatList V)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U31(tt(), V) -> isNatList# V)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U32 tt() -> mark# tt())
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U21(tt(), V1) -> isNat# V1)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U21(tt(), V1) -> U22# isNat V1)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNat length V1 -> isNatIListKind# V1)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNat s V1 -> isNatKind# V1)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNat 0() -> mark# tt())
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U22 tt() -> mark# tt())
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U11(tt(), V1) -> isNatList# V1)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatList nil() -> mark# tt())
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# U12 tt() -> mark# tt())
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# zeros() -> cons#(0(), zeros()))
     (mark# U71(X1, X2) -> active# U71(mark X1, X2), active# zeros() -> mark# cons(0(), zeros()))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# isNatKind X -> active# isNatKind X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# and(X1, X2) -> mark# X1)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# take(X1, X2) -> mark# X2)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# take(X1, X2) -> mark# X1)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U81 X -> U81# mark X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U81 X -> active# U81 mark X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U81 X -> mark# X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# nil() -> active# nil())
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U71(X1, X2) -> mark# X1)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# length X -> length# mark X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# length X -> active# length mark X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# length X -> mark# X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# s X -> s# mark X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# s X -> active# s mark X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# s X -> mark# X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U63 X -> U63# mark X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U63 X -> active# U63 mark X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U63 X -> mark# X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U61(X1, X2, X3) -> mark# X1)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U62(X1, X2) -> mark# X1)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U53 X -> U53# mark X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U53 X -> active# U53 mark X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U53 X -> mark# X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U51(X1, X2, X3) -> mark# X1)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U52(X1, X2) -> mark# X1)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# isNatIList X -> active# isNatIList X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U43 X -> U43# mark X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U43 X -> active# U43 mark X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U43 X -> mark# X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U41(X1, X2, X3) -> mark# X1)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U42(X1, X2) -> mark# X1)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U31(X1, X2) -> mark# X1)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U32 X -> U32# mark X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U32 X -> active# U32 mark X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U32 X -> mark# X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U21(X1, X2) -> mark# X1)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# isNat X -> active# isNat X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U22 X -> U22# mark X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U22 X -> active# U22 mark X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U22 X -> mark# X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# tt() -> active# tt())
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U11(X1, X2) -> mark# X1)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# isNatList X -> active# isNatList X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U12 X -> U12# mark X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U12 X -> active# U12 mark X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U12 X -> mark# X)
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# zeros() -> active# zeros())
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# 0() -> active# 0())
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# cons(X1, X2) -> mark# X1)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# isNatKind X -> active# isNatKind X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# and(X1, X2) -> mark# X1)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# take(X1, X2) -> mark# X2)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# take(X1, X2) -> mark# X1)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U81 X -> U81# mark X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U81 X -> active# U81 mark X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U81 X -> mark# X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# nil() -> active# nil())
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U71(X1, X2) -> mark# X1)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# length X -> length# mark X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# length X -> active# length mark X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# length X -> mark# X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# s X -> s# mark X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# s X -> active# s mark X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# s X -> mark# X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U63 X -> U63# mark X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U63 X -> active# U63 mark X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U63 X -> mark# X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U61(X1, X2, X3) -> mark# X1)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U62(X1, X2) -> mark# X1)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U53 X -> U53# mark X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U53 X -> active# U53 mark X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U53 X -> mark# X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U51(X1, X2, X3) -> mark# X1)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U52(X1, X2) -> mark# X1)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# isNatIList X -> active# isNatIList X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U43 X -> U43# mark X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U43 X -> active# U43 mark X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U43 X -> mark# X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U41(X1, X2, X3) -> mark# X1)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U42(X1, X2) -> mark# X1)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U31(X1, X2) -> mark# X1)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U32 X -> U32# mark X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U32 X -> active# U32 mark X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U32 X -> mark# X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U21(X1, X2) -> mark# X1)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# isNat X -> active# isNat X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U22 X -> U22# mark X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U22 X -> active# U22 mark X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U22 X -> mark# X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# tt() -> active# tt())
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U11(X1, X2) -> mark# X1)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# isNatList X -> active# isNatList X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U12 X -> U12# mark X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U12 X -> active# U12 mark X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# U12 X -> mark# X)
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# zeros() -> active# zeros())
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# 0() -> active# 0())
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2), mark# cons(X1, X2) -> mark# X1)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# isNatKind X -> active# isNatKind X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# and(X1, X2) -> mark# X1)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# take(X1, X2) -> mark# X2)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# take(X1, X2) -> mark# X1)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U81 X -> U81# mark X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U81 X -> active# U81 mark X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U81 X -> mark# X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# nil() -> active# nil())
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U71(X1, X2) -> mark# X1)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# length X -> length# mark X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# length X -> active# length mark X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# length X -> mark# X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# s X -> s# mark X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# s X -> active# s mark X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# s X -> mark# X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U63 X -> U63# mark X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U63 X -> active# U63 mark X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U63 X -> mark# X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U61(X1, X2, X3) -> mark# X1)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U62(X1, X2) -> mark# X1)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U53 X -> U53# mark X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U53 X -> active# U53 mark X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U53 X -> mark# X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U51(X1, X2, X3) -> mark# X1)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U52(X1, X2) -> mark# X1)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# isNatIList X -> active# isNatIList X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U43 X -> U43# mark X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U43 X -> active# U43 mark X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U43 X -> mark# X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U41(X1, X2, X3) -> mark# X1)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U42(X1, X2) -> mark# X1)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U31(X1, X2) -> mark# X1)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U32 X -> U32# mark X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U32 X -> active# U32 mark X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U32 X -> mark# X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U21(X1, X2) -> mark# X1)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# isNat X -> active# isNat X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U22 X -> U22# mark X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U22 X -> active# U22 mark X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U22 X -> mark# X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# tt() -> active# tt())
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U11(X1, X2) -> mark# X1)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# isNatList X -> active# isNatList X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U12 X -> U12# mark X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U12 X -> active# U12 mark X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# U12 X -> mark# X)
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# zeros() -> active# zeros())
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# 0() -> active# 0())
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2), mark# cons(X1, X2) -> mark# X1)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# isNatKind X -> active# isNatKind X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# and(X1, X2) -> mark# X1)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# take(X1, X2) -> mark# X2)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# take(X1, X2) -> mark# X1)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U81 X -> U81# mark X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U81 X -> active# U81 mark X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U81 X -> mark# X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# nil() -> active# nil())
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U71(X1, X2) -> mark# X1)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# length X -> length# mark X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# length X -> active# length mark X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# length X -> mark# X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# s X -> s# mark X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# s X -> active# s mark X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# s X -> mark# X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U63 X -> U63# mark X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U63 X -> active# U63 mark X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U63 X -> mark# X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U61(X1, X2, X3) -> mark# X1)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U62(X1, X2) -> mark# X1)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U53 X -> U53# mark X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U53 X -> active# U53 mark X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U53 X -> mark# X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U51(X1, X2, X3) -> mark# X1)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U52(X1, X2) -> mark# X1)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# isNatIList X -> active# isNatIList X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U43 X -> U43# mark X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U43 X -> active# U43 mark X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U43 X -> mark# X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U41(X1, X2, X3) -> mark# X1)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U42(X1, X2) -> mark# X1)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U31(X1, X2) -> mark# X1)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U32 X -> U32# mark X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U32 X -> active# U32 mark X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U32 X -> mark# X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U21(X1, X2) -> mark# X1)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# isNat X -> active# isNat X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U22 X -> U22# mark X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U22 X -> active# U22 mark X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U22 X -> mark# X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# tt() -> active# tt())
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U11(X1, X2) -> mark# X1)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# isNatList X -> active# isNatList X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U12 X -> U12# mark X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U12 X -> active# U12 mark X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# U12 X -> mark# X)
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# zeros() -> active# zeros())
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# 0() -> active# 0())
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), mark# cons(X1, X2) -> mark# X1)
     (active# zeros() -> mark# cons(0(), zeros()), mark# isNatKind X -> active# isNatKind X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# zeros() -> mark# cons(0(), zeros()), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# zeros() -> mark# cons(0(), zeros()), mark# and(X1, X2) -> mark# X1)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# zeros() -> mark# cons(0(), zeros()), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# zeros() -> mark# cons(0(), zeros()), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# zeros() -> mark# cons(0(), zeros()), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# zeros() -> mark# cons(0(), zeros()), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# zeros() -> mark# cons(0(), zeros()), mark# take(X1, X2) -> mark# X2)
     (active# zeros() -> mark# cons(0(), zeros()), mark# take(X1, X2) -> mark# X1)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U81 X -> U81# mark X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U81 X -> active# U81 mark X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U81 X -> mark# X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# nil() -> active# nil())
     (active# zeros() -> mark# cons(0(), zeros()), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# zeros() -> mark# cons(0(), zeros()), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# zeros() -> mark# cons(0(), zeros()), mark# U71(X1, X2) -> mark# X1)
     (active# zeros() -> mark# cons(0(), zeros()), mark# length X -> length# mark X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# length X -> active# length mark X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# length X -> mark# X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# s X -> s# mark X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# s X -> active# s mark X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# s X -> mark# X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U63 X -> U63# mark X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U63 X -> active# U63 mark X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U63 X -> mark# X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# zeros() -> mark# cons(0(), zeros()), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# zeros() -> mark# cons(0(), zeros()), mark# U61(X1, X2, X3) -> mark# X1)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# zeros() -> mark# cons(0(), zeros()), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# zeros() -> mark# cons(0(), zeros()), mark# U62(X1, X2) -> mark# X1)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U53 X -> U53# mark X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U53 X -> active# U53 mark X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U53 X -> mark# X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# zeros() -> mark# cons(0(), zeros()), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# zeros() -> mark# cons(0(), zeros()), mark# U51(X1, X2, X3) -> mark# X1)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# zeros() -> mark# cons(0(), zeros()), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# zeros() -> mark# cons(0(), zeros()), mark# U52(X1, X2) -> mark# X1)
     (active# zeros() -> mark# cons(0(), zeros()), mark# isNatIList X -> active# isNatIList X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U43 X -> U43# mark X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U43 X -> active# U43 mark X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U43 X -> mark# X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# zeros() -> mark# cons(0(), zeros()), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# zeros() -> mark# cons(0(), zeros()), mark# U41(X1, X2, X3) -> mark# X1)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# zeros() -> mark# cons(0(), zeros()), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# zeros() -> mark# cons(0(), zeros()), mark# U42(X1, X2) -> mark# X1)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# zeros() -> mark# cons(0(), zeros()), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# zeros() -> mark# cons(0(), zeros()), mark# U31(X1, X2) -> mark# X1)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U32 X -> U32# mark X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U32 X -> active# U32 mark X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U32 X -> mark# X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# zeros() -> mark# cons(0(), zeros()), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# zeros() -> mark# cons(0(), zeros()), mark# U21(X1, X2) -> mark# X1)
     (active# zeros() -> mark# cons(0(), zeros()), mark# isNat X -> active# isNat X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U22 X -> U22# mark X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U22 X -> active# U22 mark X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U22 X -> mark# X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# tt() -> active# tt())
     (active# zeros() -> mark# cons(0(), zeros()), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# zeros() -> mark# cons(0(), zeros()), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# zeros() -> mark# cons(0(), zeros()), mark# U11(X1, X2) -> mark# X1)
     (active# zeros() -> mark# cons(0(), zeros()), mark# isNatList X -> active# isNatList X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U12 X -> U12# mark X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U12 X -> active# U12 mark X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# U12 X -> mark# X)
     (active# zeros() -> mark# cons(0(), zeros()), mark# zeros() -> active# zeros())
     (active# zeros() -> mark# cons(0(), zeros()), mark# 0() -> active# 0())
     (active# zeros() -> mark# cons(0(), zeros()), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# zeros() -> mark# cons(0(), zeros()), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# zeros() -> mark# cons(0(), zeros()), mark# cons(X1, X2) -> mark# X1)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# isNatKind X -> active# isNatKind X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# and(X1, X2) -> mark# X1)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# take(X1, X2) -> mark# X2)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# take(X1, X2) -> mark# X1)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U81 X -> U81# mark X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U81 X -> active# U81 mark X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U81 X -> mark# X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# nil() -> active# nil())
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U71(X1, X2) -> mark# X1)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# length X -> length# mark X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# length X -> active# length mark X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# length X -> mark# X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# s X -> s# mark X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# s X -> active# s mark X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# s X -> mark# X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U63 X -> U63# mark X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U63 X -> active# U63 mark X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U63 X -> mark# X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U61(X1, X2, X3) -> mark# X1)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U62(X1, X2) -> mark# X1)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U53 X -> U53# mark X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U53 X -> active# U53 mark X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U53 X -> mark# X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U51(X1, X2, X3) -> mark# X1)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U52(X1, X2) -> mark# X1)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# isNatIList X -> active# isNatIList X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U43 X -> U43# mark X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U43 X -> active# U43 mark X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U43 X -> mark# X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U41(X1, X2, X3) -> mark# X1)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U42(X1, X2) -> mark# X1)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U31(X1, X2) -> mark# X1)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U32 X -> U32# mark X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U32 X -> active# U32 mark X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U32 X -> mark# X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U21(X1, X2) -> mark# X1)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# isNat X -> active# isNat X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U22 X -> U22# mark X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U22 X -> active# U22 mark X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U22 X -> mark# X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# tt() -> active# tt())
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U11(X1, X2) -> mark# X1)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# isNatList X -> active# isNatList X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U12 X -> U12# mark X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U12 X -> active# U12 mark X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U12 X -> mark# X)
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# zeros() -> active# zeros())
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# 0() -> active# 0())
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# cons(X1, X2) -> mark# X1)
     (mark# 0() -> active# 0(), active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# 0() -> active# 0(), active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# 0() -> active# 0(), active# isNatKind s V1 -> isNatKind# V1)
     (mark# 0() -> active# 0(), active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# 0() -> active# 0(), active# isNatKind 0() -> mark# tt())
     (mark# 0() -> active# 0(), active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# 0() -> active# 0(), active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# 0() -> active# 0(), active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# 0() -> active# 0(), active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# 0() -> active# 0(), active# isNatIListKind nil() -> mark# tt())
     (mark# 0() -> active# 0(), active# isNatIListKind zeros() -> mark# tt())
     (mark# 0() -> active# 0(), active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# 0() -> active# 0(), active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# 0() -> active# 0(), active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# 0() -> active# 0(), active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# 0() -> active# 0(), active# and(tt(), X) -> mark# X)
     (mark# 0() -> active# 0(), active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# 0() -> active# 0(), active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# 0() -> active# 0(), active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# 0() -> active# 0(), active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# 0() -> active# 0(), active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# 0() -> active# 0(), active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# 0() -> active# 0(), active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# 0() -> active# 0(), active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# 0() -> active# 0(), active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# 0() -> active# 0(), active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# 0() -> active# 0(), active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# 0() -> active# 0(), active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# 0() -> active# 0(), active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# 0() -> active# 0(), active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# 0() -> active# 0(), active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# 0() -> active# 0(), active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# 0() -> active# 0(), active# take(0(), IL) -> isNatIListKind# IL)
     (mark# 0() -> active# 0(), active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# 0() -> active# 0(), active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# 0() -> active# 0(), active# take(0(), IL) -> isNatIList# IL)
     (mark# 0() -> active# 0(), active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# 0() -> active# 0(), active# U81 tt() -> mark# nil())
     (mark# 0() -> active# 0(), active# U71(tt(), L) -> length# L)
     (mark# 0() -> active# 0(), active# U71(tt(), L) -> s# length L)
     (mark# 0() -> active# 0(), active# U71(tt(), L) -> mark# s length L)
     (mark# 0() -> active# 0(), active# length nil() -> mark# 0())
     (mark# 0() -> active# 0(), active# length cons(N, L) -> isNatKind# N)
     (mark# 0() -> active# 0(), active# length cons(N, L) -> isNatIListKind# L)
     (mark# 0() -> active# 0(), active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# 0() -> active# 0(), active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# 0() -> active# 0(), active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# 0() -> active# 0(), active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# 0() -> active# 0(), active# length cons(N, L) -> isNat# N)
     (mark# 0() -> active# 0(), active# length cons(N, L) -> isNatList# L)
     (mark# 0() -> active# 0(), active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# 0() -> active# 0(), active# U63 tt() -> mark# tt())
     (mark# 0() -> active# 0(), active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# 0() -> active# 0(), active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# 0() -> active# 0(), active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# 0() -> active# 0(), active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# 0() -> active# 0(), active# U62(tt(), V2) -> isNatIList# V2)
     (mark# 0() -> active# 0(), active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# 0() -> active# 0(), active# U53 tt() -> mark# tt())
     (mark# 0() -> active# 0(), active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# 0() -> active# 0(), active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# 0() -> active# 0(), active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# 0() -> active# 0(), active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# 0() -> active# 0(), active# U52(tt(), V2) -> isNatList# V2)
     (mark# 0() -> active# 0(), active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# 0() -> active# 0(), active# isNatIList zeros() -> mark# tt())
     (mark# 0() -> active# 0(), active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# 0() -> active# 0(), active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# 0() -> active# 0(), active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# 0() -> active# 0(), active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# 0() -> active# 0(), active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# 0() -> active# 0(), active# isNatIList V -> isNatIListKind# V)
     (mark# 0() -> active# 0(), active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# 0() -> active# 0(), active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# 0() -> active# 0(), active# U43 tt() -> mark# tt())
     (mark# 0() -> active# 0(), active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# 0() -> active# 0(), active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# 0() -> active# 0(), active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# 0() -> active# 0(), active# U42(tt(), V2) -> isNatIList# V2)
     (mark# 0() -> active# 0(), active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# 0() -> active# 0(), active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# 0() -> active# 0(), active# U31(tt(), V) -> U32# isNatList V)
     (mark# 0() -> active# 0(), active# U31(tt(), V) -> isNatList# V)
     (mark# 0() -> active# 0(), active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# 0() -> active# 0(), active# U32 tt() -> mark# tt())
     (mark# 0() -> active# 0(), active# U21(tt(), V1) -> isNat# V1)
     (mark# 0() -> active# 0(), active# U21(tt(), V1) -> U22# isNat V1)
     (mark# 0() -> active# 0(), active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# 0() -> active# 0(), active# isNat length V1 -> isNatIListKind# V1)
     (mark# 0() -> active# 0(), active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# 0() -> active# 0(), active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# 0() -> active# 0(), active# isNat s V1 -> isNatKind# V1)
     (mark# 0() -> active# 0(), active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# 0() -> active# 0(), active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# 0() -> active# 0(), active# isNat 0() -> mark# tt())
     (mark# 0() -> active# 0(), active# U22 tt() -> mark# tt())
     (mark# 0() -> active# 0(), active# U11(tt(), V1) -> isNatList# V1)
     (mark# 0() -> active# 0(), active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# 0() -> active# 0(), active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# 0() -> active# 0(), active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# 0() -> active# 0(), active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# 0() -> active# 0(), active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# 0() -> active# 0(), active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# 0() -> active# 0(), active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# 0() -> active# 0(), active# isNatList nil() -> mark# tt())
     (mark# 0() -> active# 0(), active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# 0() -> active# 0(), active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# 0() -> active# 0(), active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# 0() -> active# 0(), active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# 0() -> active# 0(), active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# 0() -> active# 0(), active# U12 tt() -> mark# tt())
     (mark# 0() -> active# 0(), active# zeros() -> cons#(0(), zeros()))
     (mark# 0() -> active# 0(), active# zeros() -> mark# cons(0(), zeros()))
     (mark# U12 X -> mark# X, mark# isNatKind X -> active# isNatKind X)
     (mark# U12 X -> mark# X, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# U12 X -> mark# X, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# U12 X -> mark# X, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# U12 X -> mark# X, mark# and(X1, X2) -> mark# X1)
     (mark# U12 X -> mark# X, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# U12 X -> mark# X, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# U12 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# U12 X -> mark# X, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# U12 X -> mark# X, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# U12 X -> mark# X, mark# take(X1, X2) -> mark# X2)
     (mark# U12 X -> mark# X, mark# take(X1, X2) -> mark# X1)
     (mark# U12 X -> mark# X, mark# U81 X -> U81# mark X)
     (mark# U12 X -> mark# X, mark# U81 X -> active# U81 mark X)
     (mark# U12 X -> mark# X, mark# U81 X -> mark# X)
     (mark# U12 X -> mark# X, mark# nil() -> active# nil())
     (mark# U12 X -> mark# X, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# U12 X -> mark# X, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# U12 X -> mark# X, mark# U71(X1, X2) -> mark# X1)
     (mark# U12 X -> mark# X, mark# length X -> length# mark X)
     (mark# U12 X -> mark# X, mark# length X -> active# length mark X)
     (mark# U12 X -> mark# X, mark# length X -> mark# X)
     (mark# U12 X -> mark# X, mark# s X -> s# mark X)
     (mark# U12 X -> mark# X, mark# s X -> active# s mark X)
     (mark# U12 X -> mark# X, mark# s X -> mark# X)
     (mark# U12 X -> mark# X, mark# U63 X -> U63# mark X)
     (mark# U12 X -> mark# X, mark# U63 X -> active# U63 mark X)
     (mark# U12 X -> mark# X, mark# U63 X -> mark# X)
     (mark# U12 X -> mark# X, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# U12 X -> mark# X, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# U12 X -> mark# X, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# U12 X -> mark# X, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# U12 X -> mark# X, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# U12 X -> mark# X, mark# U62(X1, X2) -> mark# X1)
     (mark# U12 X -> mark# X, mark# U53 X -> U53# mark X)
     (mark# U12 X -> mark# X, mark# U53 X -> active# U53 mark X)
     (mark# U12 X -> mark# X, mark# U53 X -> mark# X)
     (mark# U12 X -> mark# X, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# U12 X -> mark# X, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# U12 X -> mark# X, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# U12 X -> mark# X, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# U12 X -> mark# X, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# U12 X -> mark# X, mark# U52(X1, X2) -> mark# X1)
     (mark# U12 X -> mark# X, mark# isNatIList X -> active# isNatIList X)
     (mark# U12 X -> mark# X, mark# U43 X -> U43# mark X)
     (mark# U12 X -> mark# X, mark# U43 X -> active# U43 mark X)
     (mark# U12 X -> mark# X, mark# U43 X -> mark# X)
     (mark# U12 X -> mark# X, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# U12 X -> mark# X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# U12 X -> mark# X, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# U12 X -> mark# X, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# U12 X -> mark# X, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# U12 X -> mark# X, mark# U42(X1, X2) -> mark# X1)
     (mark# U12 X -> mark# X, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# U12 X -> mark# X, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# U12 X -> mark# X, mark# U31(X1, X2) -> mark# X1)
     (mark# U12 X -> mark# X, mark# U32 X -> U32# mark X)
     (mark# U12 X -> mark# X, mark# U32 X -> active# U32 mark X)
     (mark# U12 X -> mark# X, mark# U32 X -> mark# X)
     (mark# U12 X -> mark# X, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# U12 X -> mark# X, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# U12 X -> mark# X, mark# U21(X1, X2) -> mark# X1)
     (mark# U12 X -> mark# X, mark# isNat X -> active# isNat X)
     (mark# U12 X -> mark# X, mark# U22 X -> U22# mark X)
     (mark# U12 X -> mark# X, mark# U22 X -> active# U22 mark X)
     (mark# U12 X -> mark# X, mark# U22 X -> mark# X)
     (mark# U12 X -> mark# X, mark# tt() -> active# tt())
     (mark# U12 X -> mark# X, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# U12 X -> mark# X, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# U12 X -> mark# X, mark# U11(X1, X2) -> mark# X1)
     (mark# U12 X -> mark# X, mark# isNatList X -> active# isNatList X)
     (mark# U12 X -> mark# X, mark# U12 X -> U12# mark X)
     (mark# U12 X -> mark# X, mark# U12 X -> active# U12 mark X)
     (mark# U12 X -> mark# X, mark# U12 X -> mark# X)
     (mark# U12 X -> mark# X, mark# zeros() -> active# zeros())
     (mark# U12 X -> mark# X, mark# 0() -> active# 0())
     (mark# U12 X -> mark# X, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# U12 X -> mark# X, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# U12 X -> mark# X, mark# cons(X1, X2) -> mark# X1)
     (mark# U22 X -> mark# X, mark# isNatKind X -> active# isNatKind X)
     (mark# U22 X -> mark# X, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# U22 X -> mark# X, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# U22 X -> mark# X, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# U22 X -> mark# X, mark# and(X1, X2) -> mark# X1)
     (mark# U22 X -> mark# X, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# U22 X -> mark# X, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# U22 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# U22 X -> mark# X, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# U22 X -> mark# X, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# U22 X -> mark# X, mark# take(X1, X2) -> mark# X2)
     (mark# U22 X -> mark# X, mark# take(X1, X2) -> mark# X1)
     (mark# U22 X -> mark# X, mark# U81 X -> U81# mark X)
     (mark# U22 X -> mark# X, mark# U81 X -> active# U81 mark X)
     (mark# U22 X -> mark# X, mark# U81 X -> mark# X)
     (mark# U22 X -> mark# X, mark# nil() -> active# nil())
     (mark# U22 X -> mark# X, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# U22 X -> mark# X, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# U22 X -> mark# X, mark# U71(X1, X2) -> mark# X1)
     (mark# U22 X -> mark# X, mark# length X -> length# mark X)
     (mark# U22 X -> mark# X, mark# length X -> active# length mark X)
     (mark# U22 X -> mark# X, mark# length X -> mark# X)
     (mark# U22 X -> mark# X, mark# s X -> s# mark X)
     (mark# U22 X -> mark# X, mark# s X -> active# s mark X)
     (mark# U22 X -> mark# X, mark# s X -> mark# X)
     (mark# U22 X -> mark# X, mark# U63 X -> U63# mark X)
     (mark# U22 X -> mark# X, mark# U63 X -> active# U63 mark X)
     (mark# U22 X -> mark# X, mark# U63 X -> mark# X)
     (mark# U22 X -> mark# X, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# U22 X -> mark# X, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# U22 X -> mark# X, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# U22 X -> mark# X, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# U22 X -> mark# X, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# U22 X -> mark# X, mark# U62(X1, X2) -> mark# X1)
     (mark# U22 X -> mark# X, mark# U53 X -> U53# mark X)
     (mark# U22 X -> mark# X, mark# U53 X -> active# U53 mark X)
     (mark# U22 X -> mark# X, mark# U53 X -> mark# X)
     (mark# U22 X -> mark# X, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# U22 X -> mark# X, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# U22 X -> mark# X, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# U22 X -> mark# X, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# U22 X -> mark# X, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# U22 X -> mark# X, mark# U52(X1, X2) -> mark# X1)
     (mark# U22 X -> mark# X, mark# isNatIList X -> active# isNatIList X)
     (mark# U22 X -> mark# X, mark# U43 X -> U43# mark X)
     (mark# U22 X -> mark# X, mark# U43 X -> active# U43 mark X)
     (mark# U22 X -> mark# X, mark# U43 X -> mark# X)
     (mark# U22 X -> mark# X, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# U22 X -> mark# X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# U22 X -> mark# X, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# U22 X -> mark# X, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# U22 X -> mark# X, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# U22 X -> mark# X, mark# U42(X1, X2) -> mark# X1)
     (mark# U22 X -> mark# X, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# U22 X -> mark# X, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# U22 X -> mark# X, mark# U31(X1, X2) -> mark# X1)
     (mark# U22 X -> mark# X, mark# U32 X -> U32# mark X)
     (mark# U22 X -> mark# X, mark# U32 X -> active# U32 mark X)
     (mark# U22 X -> mark# X, mark# U32 X -> mark# X)
     (mark# U22 X -> mark# X, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# U22 X -> mark# X, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# U22 X -> mark# X, mark# U21(X1, X2) -> mark# X1)
     (mark# U22 X -> mark# X, mark# isNat X -> active# isNat X)
     (mark# U22 X -> mark# X, mark# U22 X -> U22# mark X)
     (mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X)
     (mark# U22 X -> mark# X, mark# U22 X -> mark# X)
     (mark# U22 X -> mark# X, mark# tt() -> active# tt())
     (mark# U22 X -> mark# X, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# U22 X -> mark# X, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# U22 X -> mark# X, mark# U11(X1, X2) -> mark# X1)
     (mark# U22 X -> mark# X, mark# isNatList X -> active# isNatList X)
     (mark# U22 X -> mark# X, mark# U12 X -> U12# mark X)
     (mark# U22 X -> mark# X, mark# U12 X -> active# U12 mark X)
     (mark# U22 X -> mark# X, mark# U12 X -> mark# X)
     (mark# U22 X -> mark# X, mark# zeros() -> active# zeros())
     (mark# U22 X -> mark# X, mark# 0() -> active# 0())
     (mark# U22 X -> mark# X, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# U22 X -> mark# X, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# U22 X -> mark# X, mark# cons(X1, X2) -> mark# X1)
     (mark# U43 X -> mark# X, mark# isNatKind X -> active# isNatKind X)
     (mark# U43 X -> mark# X, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# U43 X -> mark# X, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# U43 X -> mark# X, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# U43 X -> mark# X, mark# and(X1, X2) -> mark# X1)
     (mark# U43 X -> mark# X, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# U43 X -> mark# X, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# U43 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# U43 X -> mark# X, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# U43 X -> mark# X, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# U43 X -> mark# X, mark# take(X1, X2) -> mark# X2)
     (mark# U43 X -> mark# X, mark# take(X1, X2) -> mark# X1)
     (mark# U43 X -> mark# X, mark# U81 X -> U81# mark X)
     (mark# U43 X -> mark# X, mark# U81 X -> active# U81 mark X)
     (mark# U43 X -> mark# X, mark# U81 X -> mark# X)
     (mark# U43 X -> mark# X, mark# nil() -> active# nil())
     (mark# U43 X -> mark# X, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# U43 X -> mark# X, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# U43 X -> mark# X, mark# U71(X1, X2) -> mark# X1)
     (mark# U43 X -> mark# X, mark# length X -> length# mark X)
     (mark# U43 X -> mark# X, mark# length X -> active# length mark X)
     (mark# U43 X -> mark# X, mark# length X -> mark# X)
     (mark# U43 X -> mark# X, mark# s X -> s# mark X)
     (mark# U43 X -> mark# X, mark# s X -> active# s mark X)
     (mark# U43 X -> mark# X, mark# s X -> mark# X)
     (mark# U43 X -> mark# X, mark# U63 X -> U63# mark X)
     (mark# U43 X -> mark# X, mark# U63 X -> active# U63 mark X)
     (mark# U43 X -> mark# X, mark# U63 X -> mark# X)
     (mark# U43 X -> mark# X, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# U43 X -> mark# X, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# U43 X -> mark# X, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# U43 X -> mark# X, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# U43 X -> mark# X, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# U43 X -> mark# X, mark# U62(X1, X2) -> mark# X1)
     (mark# U43 X -> mark# X, mark# U53 X -> U53# mark X)
     (mark# U43 X -> mark# X, mark# U53 X -> active# U53 mark X)
     (mark# U43 X -> mark# X, mark# U53 X -> mark# X)
     (mark# U43 X -> mark# X, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# U43 X -> mark# X, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# U43 X -> mark# X, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# U43 X -> mark# X, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# U43 X -> mark# X, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# U43 X -> mark# X, mark# U52(X1, X2) -> mark# X1)
     (mark# U43 X -> mark# X, mark# isNatIList X -> active# isNatIList X)
     (mark# U43 X -> mark# X, mark# U43 X -> U43# mark X)
     (mark# U43 X -> mark# X, mark# U43 X -> active# U43 mark X)
     (mark# U43 X -> mark# X, mark# U43 X -> mark# X)
     (mark# U43 X -> mark# X, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# U43 X -> mark# X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# U43 X -> mark# X, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# U43 X -> mark# X, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# U43 X -> mark# X, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# U43 X -> mark# X, mark# U42(X1, X2) -> mark# X1)
     (mark# U43 X -> mark# X, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# U43 X -> mark# X, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# U43 X -> mark# X, mark# U31(X1, X2) -> mark# X1)
     (mark# U43 X -> mark# X, mark# U32 X -> U32# mark X)
     (mark# U43 X -> mark# X, mark# U32 X -> active# U32 mark X)
     (mark# U43 X -> mark# X, mark# U32 X -> mark# X)
     (mark# U43 X -> mark# X, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# U43 X -> mark# X, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# U43 X -> mark# X, mark# U21(X1, X2) -> mark# X1)
     (mark# U43 X -> mark# X, mark# isNat X -> active# isNat X)
     (mark# U43 X -> mark# X, mark# U22 X -> U22# mark X)
     (mark# U43 X -> mark# X, mark# U22 X -> active# U22 mark X)
     (mark# U43 X -> mark# X, mark# U22 X -> mark# X)
     (mark# U43 X -> mark# X, mark# tt() -> active# tt())
     (mark# U43 X -> mark# X, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# U43 X -> mark# X, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# U43 X -> mark# X, mark# U11(X1, X2) -> mark# X1)
     (mark# U43 X -> mark# X, mark# isNatList X -> active# isNatList X)
     (mark# U43 X -> mark# X, mark# U12 X -> U12# mark X)
     (mark# U43 X -> mark# X, mark# U12 X -> active# U12 mark X)
     (mark# U43 X -> mark# X, mark# U12 X -> mark# X)
     (mark# U43 X -> mark# X, mark# zeros() -> active# zeros())
     (mark# U43 X -> mark# X, mark# 0() -> active# 0())
     (mark# U43 X -> mark# X, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# U43 X -> mark# X, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# U43 X -> mark# X, mark# cons(X1, X2) -> mark# X1)
     (mark# U63 X -> mark# X, mark# isNatKind X -> active# isNatKind X)
     (mark# U63 X -> mark# X, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# U63 X -> mark# X, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# U63 X -> mark# X, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# U63 X -> mark# X, mark# and(X1, X2) -> mark# X1)
     (mark# U63 X -> mark# X, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# U63 X -> mark# X, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# U63 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# U63 X -> mark# X, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# U63 X -> mark# X, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# U63 X -> mark# X, mark# take(X1, X2) -> mark# X2)
     (mark# U63 X -> mark# X, mark# take(X1, X2) -> mark# X1)
     (mark# U63 X -> mark# X, mark# U81 X -> U81# mark X)
     (mark# U63 X -> mark# X, mark# U81 X -> active# U81 mark X)
     (mark# U63 X -> mark# X, mark# U81 X -> mark# X)
     (mark# U63 X -> mark# X, mark# nil() -> active# nil())
     (mark# U63 X -> mark# X, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# U63 X -> mark# X, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# U63 X -> mark# X, mark# U71(X1, X2) -> mark# X1)
     (mark# U63 X -> mark# X, mark# length X -> length# mark X)
     (mark# U63 X -> mark# X, mark# length X -> active# length mark X)
     (mark# U63 X -> mark# X, mark# length X -> mark# X)
     (mark# U63 X -> mark# X, mark# s X -> s# mark X)
     (mark# U63 X -> mark# X, mark# s X -> active# s mark X)
     (mark# U63 X -> mark# X, mark# s X -> mark# X)
     (mark# U63 X -> mark# X, mark# U63 X -> U63# mark X)
     (mark# U63 X -> mark# X, mark# U63 X -> active# U63 mark X)
     (mark# U63 X -> mark# X, mark# U63 X -> mark# X)
     (mark# U63 X -> mark# X, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# U63 X -> mark# X, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# U63 X -> mark# X, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# U63 X -> mark# X, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# U63 X -> mark# X, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# U63 X -> mark# X, mark# U62(X1, X2) -> mark# X1)
     (mark# U63 X -> mark# X, mark# U53 X -> U53# mark X)
     (mark# U63 X -> mark# X, mark# U53 X -> active# U53 mark X)
     (mark# U63 X -> mark# X, mark# U53 X -> mark# X)
     (mark# U63 X -> mark# X, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# U63 X -> mark# X, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# U63 X -> mark# X, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# U63 X -> mark# X, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# U63 X -> mark# X, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# U63 X -> mark# X, mark# U52(X1, X2) -> mark# X1)
     (mark# U63 X -> mark# X, mark# isNatIList X -> active# isNatIList X)
     (mark# U63 X -> mark# X, mark# U43 X -> U43# mark X)
     (mark# U63 X -> mark# X, mark# U43 X -> active# U43 mark X)
     (mark# U63 X -> mark# X, mark# U43 X -> mark# X)
     (mark# U63 X -> mark# X, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# U63 X -> mark# X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# U63 X -> mark# X, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# U63 X -> mark# X, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# U63 X -> mark# X, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# U63 X -> mark# X, mark# U42(X1, X2) -> mark# X1)
     (mark# U63 X -> mark# X, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# U63 X -> mark# X, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# U63 X -> mark# X, mark# U31(X1, X2) -> mark# X1)
     (mark# U63 X -> mark# X, mark# U32 X -> U32# mark X)
     (mark# U63 X -> mark# X, mark# U32 X -> active# U32 mark X)
     (mark# U63 X -> mark# X, mark# U32 X -> mark# X)
     (mark# U63 X -> mark# X, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# U63 X -> mark# X, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# U63 X -> mark# X, mark# U21(X1, X2) -> mark# X1)
     (mark# U63 X -> mark# X, mark# isNat X -> active# isNat X)
     (mark# U63 X -> mark# X, mark# U22 X -> U22# mark X)
     (mark# U63 X -> mark# X, mark# U22 X -> active# U22 mark X)
     (mark# U63 X -> mark# X, mark# U22 X -> mark# X)
     (mark# U63 X -> mark# X, mark# tt() -> active# tt())
     (mark# U63 X -> mark# X, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# U63 X -> mark# X, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# U63 X -> mark# X, mark# U11(X1, X2) -> mark# X1)
     (mark# U63 X -> mark# X, mark# isNatList X -> active# isNatList X)
     (mark# U63 X -> mark# X, mark# U12 X -> U12# mark X)
     (mark# U63 X -> mark# X, mark# U12 X -> active# U12 mark X)
     (mark# U63 X -> mark# X, mark# U12 X -> mark# X)
     (mark# U63 X -> mark# X, mark# zeros() -> active# zeros())
     (mark# U63 X -> mark# X, mark# 0() -> active# 0())
     (mark# U63 X -> mark# X, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# U63 X -> mark# X, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# U63 X -> mark# X, mark# cons(X1, X2) -> mark# X1)
     (mark# length X -> mark# X, mark# isNatKind X -> active# isNatKind X)
     (mark# length X -> mark# X, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# length X -> mark# X, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# length X -> mark# X, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# length X -> mark# X, mark# and(X1, X2) -> mark# X1)
     (mark# length X -> mark# X, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# length X -> mark# X, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# length X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# length X -> mark# X, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# length X -> mark# X, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# length X -> mark# X, mark# take(X1, X2) -> mark# X2)
     (mark# length X -> mark# X, mark# take(X1, X2) -> mark# X1)
     (mark# length X -> mark# X, mark# U81 X -> U81# mark X)
     (mark# length X -> mark# X, mark# U81 X -> active# U81 mark X)
     (mark# length X -> mark# X, mark# U81 X -> mark# X)
     (mark# length X -> mark# X, mark# nil() -> active# nil())
     (mark# length X -> mark# X, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# length X -> mark# X, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# length X -> mark# X, mark# U71(X1, X2) -> mark# X1)
     (mark# length X -> mark# X, mark# length X -> length# mark X)
     (mark# length X -> mark# X, mark# length X -> active# length mark X)
     (mark# length X -> mark# X, mark# length X -> mark# X)
     (mark# length X -> mark# X, mark# s X -> s# mark X)
     (mark# length X -> mark# X, mark# s X -> active# s mark X)
     (mark# length X -> mark# X, mark# s X -> mark# X)
     (mark# length X -> mark# X, mark# U63 X -> U63# mark X)
     (mark# length X -> mark# X, mark# U63 X -> active# U63 mark X)
     (mark# length X -> mark# X, mark# U63 X -> mark# X)
     (mark# length X -> mark# X, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# length X -> mark# X, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# length X -> mark# X, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# length X -> mark# X, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# length X -> mark# X, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# length X -> mark# X, mark# U62(X1, X2) -> mark# X1)
     (mark# length X -> mark# X, mark# U53 X -> U53# mark X)
     (mark# length X -> mark# X, mark# U53 X -> active# U53 mark X)
     (mark# length X -> mark# X, mark# U53 X -> mark# X)
     (mark# length X -> mark# X, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# length X -> mark# X, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# length X -> mark# X, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# length X -> mark# X, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# length X -> mark# X, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# length X -> mark# X, mark# U52(X1, X2) -> mark# X1)
     (mark# length X -> mark# X, mark# isNatIList X -> active# isNatIList X)
     (mark# length X -> mark# X, mark# U43 X -> U43# mark X)
     (mark# length X -> mark# X, mark# U43 X -> active# U43 mark X)
     (mark# length X -> mark# X, mark# U43 X -> mark# X)
     (mark# length X -> mark# X, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# length X -> mark# X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# length X -> mark# X, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# length X -> mark# X, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# length X -> mark# X, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# length X -> mark# X, mark# U42(X1, X2) -> mark# X1)
     (mark# length X -> mark# X, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# length X -> mark# X, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# length X -> mark# X, mark# U31(X1, X2) -> mark# X1)
     (mark# length X -> mark# X, mark# U32 X -> U32# mark X)
     (mark# length X -> mark# X, mark# U32 X -> active# U32 mark X)
     (mark# length X -> mark# X, mark# U32 X -> mark# X)
     (mark# length X -> mark# X, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# length X -> mark# X, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# length X -> mark# X, mark# U21(X1, X2) -> mark# X1)
     (mark# length X -> mark# X, mark# isNat X -> active# isNat X)
     (mark# length X -> mark# X, mark# U22 X -> U22# mark X)
     (mark# length X -> mark# X, mark# U22 X -> active# U22 mark X)
     (mark# length X -> mark# X, mark# U22 X -> mark# X)
     (mark# length X -> mark# X, mark# tt() -> active# tt())
     (mark# length X -> mark# X, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# length X -> mark# X, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# length X -> mark# X, mark# U11(X1, X2) -> mark# X1)
     (mark# length X -> mark# X, mark# isNatList X -> active# isNatList X)
     (mark# length X -> mark# X, mark# U12 X -> U12# mark X)
     (mark# length X -> mark# X, mark# U12 X -> active# U12 mark X)
     (mark# length X -> mark# X, mark# U12 X -> mark# X)
     (mark# length X -> mark# X, mark# zeros() -> active# zeros())
     (mark# length X -> mark# X, mark# 0() -> active# 0())
     (mark# length X -> mark# X, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# length X -> mark# X, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# length X -> mark# X, mark# cons(X1, X2) -> mark# X1)
     (mark# U81 X -> mark# X, mark# isNatKind X -> active# isNatKind X)
     (mark# U81 X -> mark# X, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# U81 X -> mark# X, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# U81 X -> mark# X, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# U81 X -> mark# X, mark# and(X1, X2) -> mark# X1)
     (mark# U81 X -> mark# X, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# U81 X -> mark# X, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# U81 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# U81 X -> mark# X, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# U81 X -> mark# X, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# U81 X -> mark# X, mark# take(X1, X2) -> mark# X2)
     (mark# U81 X -> mark# X, mark# take(X1, X2) -> mark# X1)
     (mark# U81 X -> mark# X, mark# U81 X -> U81# mark X)
     (mark# U81 X -> mark# X, mark# U81 X -> active# U81 mark X)
     (mark# U81 X -> mark# X, mark# U81 X -> mark# X)
     (mark# U81 X -> mark# X, mark# nil() -> active# nil())
     (mark# U81 X -> mark# X, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# U81 X -> mark# X, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# U81 X -> mark# X, mark# U71(X1, X2) -> mark# X1)
     (mark# U81 X -> mark# X, mark# length X -> length# mark X)
     (mark# U81 X -> mark# X, mark# length X -> active# length mark X)
     (mark# U81 X -> mark# X, mark# length X -> mark# X)
     (mark# U81 X -> mark# X, mark# s X -> s# mark X)
     (mark# U81 X -> mark# X, mark# s X -> active# s mark X)
     (mark# U81 X -> mark# X, mark# s X -> mark# X)
     (mark# U81 X -> mark# X, mark# U63 X -> U63# mark X)
     (mark# U81 X -> mark# X, mark# U63 X -> active# U63 mark X)
     (mark# U81 X -> mark# X, mark# U63 X -> mark# X)
     (mark# U81 X -> mark# X, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# U81 X -> mark# X, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# U81 X -> mark# X, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# U81 X -> mark# X, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# U81 X -> mark# X, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# U81 X -> mark# X, mark# U62(X1, X2) -> mark# X1)
     (mark# U81 X -> mark# X, mark# U53 X -> U53# mark X)
     (mark# U81 X -> mark# X, mark# U53 X -> active# U53 mark X)
     (mark# U81 X -> mark# X, mark# U53 X -> mark# X)
     (mark# U81 X -> mark# X, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# U81 X -> mark# X, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# U81 X -> mark# X, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# U81 X -> mark# X, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# U81 X -> mark# X, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# U81 X -> mark# X, mark# U52(X1, X2) -> mark# X1)
     (mark# U81 X -> mark# X, mark# isNatIList X -> active# isNatIList X)
     (mark# U81 X -> mark# X, mark# U43 X -> U43# mark X)
     (mark# U81 X -> mark# X, mark# U43 X -> active# U43 mark X)
     (mark# U81 X -> mark# X, mark# U43 X -> mark# X)
     (mark# U81 X -> mark# X, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# U81 X -> mark# X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# U81 X -> mark# X, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# U81 X -> mark# X, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# U81 X -> mark# X, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# U81 X -> mark# X, mark# U42(X1, X2) -> mark# X1)
     (mark# U81 X -> mark# X, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# U81 X -> mark# X, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# U81 X -> mark# X, mark# U31(X1, X2) -> mark# X1)
     (mark# U81 X -> mark# X, mark# U32 X -> U32# mark X)
     (mark# U81 X -> mark# X, mark# U32 X -> active# U32 mark X)
     (mark# U81 X -> mark# X, mark# U32 X -> mark# X)
     (mark# U81 X -> mark# X, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# U81 X -> mark# X, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# U81 X -> mark# X, mark# U21(X1, X2) -> mark# X1)
     (mark# U81 X -> mark# X, mark# isNat X -> active# isNat X)
     (mark# U81 X -> mark# X, mark# U22 X -> U22# mark X)
     (mark# U81 X -> mark# X, mark# U22 X -> active# U22 mark X)
     (mark# U81 X -> mark# X, mark# U22 X -> mark# X)
     (mark# U81 X -> mark# X, mark# tt() -> active# tt())
     (mark# U81 X -> mark# X, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# U81 X -> mark# X, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# U81 X -> mark# X, mark# U11(X1, X2) -> mark# X1)
     (mark# U81 X -> mark# X, mark# isNatList X -> active# isNatList X)
     (mark# U81 X -> mark# X, mark# U12 X -> U12# mark X)
     (mark# U81 X -> mark# X, mark# U12 X -> active# U12 mark X)
     (mark# U81 X -> mark# X, mark# U12 X -> mark# X)
     (mark# U81 X -> mark# X, mark# zeros() -> active# zeros())
     (mark# U81 X -> mark# X, mark# 0() -> active# 0())
     (mark# U81 X -> mark# X, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# U81 X -> mark# X, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# U81 X -> mark# X, mark# cons(X1, X2) -> mark# X1)
     (active# isNatList nil() -> mark# tt(), mark# isNatKind X -> active# isNatKind X)
     (active# isNatList nil() -> mark# tt(), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# isNatList nil() -> mark# tt(), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# isNatList nil() -> mark# tt(), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# isNatList nil() -> mark# tt(), mark# and(X1, X2) -> mark# X1)
     (active# isNatList nil() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# isNatList nil() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# isNatList nil() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# isNatList nil() -> mark# tt(), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# isNatList nil() -> mark# tt(), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# isNatList nil() -> mark# tt(), mark# take(X1, X2) -> mark# X2)
     (active# isNatList nil() -> mark# tt(), mark# take(X1, X2) -> mark# X1)
     (active# isNatList nil() -> mark# tt(), mark# U81 X -> U81# mark X)
     (active# isNatList nil() -> mark# tt(), mark# U81 X -> active# U81 mark X)
     (active# isNatList nil() -> mark# tt(), mark# U81 X -> mark# X)
     (active# isNatList nil() -> mark# tt(), mark# nil() -> active# nil())
     (active# isNatList nil() -> mark# tt(), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# isNatList nil() -> mark# tt(), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# isNatList nil() -> mark# tt(), mark# U71(X1, X2) -> mark# X1)
     (active# isNatList nil() -> mark# tt(), mark# length X -> length# mark X)
     (active# isNatList nil() -> mark# tt(), mark# length X -> active# length mark X)
     (active# isNatList nil() -> mark# tt(), mark# length X -> mark# X)
     (active# isNatList nil() -> mark# tt(), mark# s X -> s# mark X)
     (active# isNatList nil() -> mark# tt(), mark# s X -> active# s mark X)
     (active# isNatList nil() -> mark# tt(), mark# s X -> mark# X)
     (active# isNatList nil() -> mark# tt(), mark# U63 X -> U63# mark X)
     (active# isNatList nil() -> mark# tt(), mark# U63 X -> active# U63 mark X)
     (active# isNatList nil() -> mark# tt(), mark# U63 X -> mark# X)
     (active# isNatList nil() -> mark# tt(), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# isNatList nil() -> mark# tt(), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# isNatList nil() -> mark# tt(), mark# U61(X1, X2, X3) -> mark# X1)
     (active# isNatList nil() -> mark# tt(), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# isNatList nil() -> mark# tt(), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# isNatList nil() -> mark# tt(), mark# U62(X1, X2) -> mark# X1)
     (active# isNatList nil() -> mark# tt(), mark# U53 X -> U53# mark X)
     (active# isNatList nil() -> mark# tt(), mark# U53 X -> active# U53 mark X)
     (active# isNatList nil() -> mark# tt(), mark# U53 X -> mark# X)
     (active# isNatList nil() -> mark# tt(), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# isNatList nil() -> mark# tt(), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# isNatList nil() -> mark# tt(), mark# U51(X1, X2, X3) -> mark# X1)
     (active# isNatList nil() -> mark# tt(), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# isNatList nil() -> mark# tt(), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# isNatList nil() -> mark# tt(), mark# U52(X1, X2) -> mark# X1)
     (active# isNatList nil() -> mark# tt(), mark# isNatIList X -> active# isNatIList X)
     (active# isNatList nil() -> mark# tt(), mark# U43 X -> U43# mark X)
     (active# isNatList nil() -> mark# tt(), mark# U43 X -> active# U43 mark X)
     (active# isNatList nil() -> mark# tt(), mark# U43 X -> mark# X)
     (active# isNatList nil() -> mark# tt(), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# isNatList nil() -> mark# tt(), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# isNatList nil() -> mark# tt(), mark# U41(X1, X2, X3) -> mark# X1)
     (active# isNatList nil() -> mark# tt(), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# isNatList nil() -> mark# tt(), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# isNatList nil() -> mark# tt(), mark# U42(X1, X2) -> mark# X1)
     (active# isNatList nil() -> mark# tt(), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# isNatList nil() -> mark# tt(), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# isNatList nil() -> mark# tt(), mark# U31(X1, X2) -> mark# X1)
     (active# isNatList nil() -> mark# tt(), mark# U32 X -> U32# mark X)
     (active# isNatList nil() -> mark# tt(), mark# U32 X -> active# U32 mark X)
     (active# isNatList nil() -> mark# tt(), mark# U32 X -> mark# X)
     (active# isNatList nil() -> mark# tt(), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# isNatList nil() -> mark# tt(), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# isNatList nil() -> mark# tt(), mark# U21(X1, X2) -> mark# X1)
     (active# isNatList nil() -> mark# tt(), mark# isNat X -> active# isNat X)
     (active# isNatList nil() -> mark# tt(), mark# U22 X -> U22# mark X)
     (active# isNatList nil() -> mark# tt(), mark# U22 X -> active# U22 mark X)
     (active# isNatList nil() -> mark# tt(), mark# U22 X -> mark# X)
     (active# isNatList nil() -> mark# tt(), mark# tt() -> active# tt())
     (active# isNatList nil() -> mark# tt(), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# isNatList nil() -> mark# tt(), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# isNatList nil() -> mark# tt(), mark# U11(X1, X2) -> mark# X1)
     (active# isNatList nil() -> mark# tt(), mark# isNatList X -> active# isNatList X)
     (active# isNatList nil() -> mark# tt(), mark# U12 X -> U12# mark X)
     (active# isNatList nil() -> mark# tt(), mark# U12 X -> active# U12 mark X)
     (active# isNatList nil() -> mark# tt(), mark# U12 X -> mark# X)
     (active# isNatList nil() -> mark# tt(), mark# zeros() -> active# zeros())
     (active# isNatList nil() -> mark# tt(), mark# 0() -> active# 0())
     (active# isNatList nil() -> mark# tt(), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# isNatList nil() -> mark# tt(), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# isNatList nil() -> mark# tt(), mark# cons(X1, X2) -> mark# X1)
     (active# isNat 0() -> mark# tt(), mark# isNatKind X -> active# isNatKind X)
     (active# isNat 0() -> mark# tt(), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# isNat 0() -> mark# tt(), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# isNat 0() -> mark# tt(), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# isNat 0() -> mark# tt(), mark# and(X1, X2) -> mark# X1)
     (active# isNat 0() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# isNat 0() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# isNat 0() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# isNat 0() -> mark# tt(), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# isNat 0() -> mark# tt(), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# isNat 0() -> mark# tt(), mark# take(X1, X2) -> mark# X2)
     (active# isNat 0() -> mark# tt(), mark# take(X1, X2) -> mark# X1)
     (active# isNat 0() -> mark# tt(), mark# U81 X -> U81# mark X)
     (active# isNat 0() -> mark# tt(), mark# U81 X -> active# U81 mark X)
     (active# isNat 0() -> mark# tt(), mark# U81 X -> mark# X)
     (active# isNat 0() -> mark# tt(), mark# nil() -> active# nil())
     (active# isNat 0() -> mark# tt(), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# isNat 0() -> mark# tt(), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# isNat 0() -> mark# tt(), mark# U71(X1, X2) -> mark# X1)
     (active# isNat 0() -> mark# tt(), mark# length X -> length# mark X)
     (active# isNat 0() -> mark# tt(), mark# length X -> active# length mark X)
     (active# isNat 0() -> mark# tt(), mark# length X -> mark# X)
     (active# isNat 0() -> mark# tt(), mark# s X -> s# mark X)
     (active# isNat 0() -> mark# tt(), mark# s X -> active# s mark X)
     (active# isNat 0() -> mark# tt(), mark# s X -> mark# X)
     (active# isNat 0() -> mark# tt(), mark# U63 X -> U63# mark X)
     (active# isNat 0() -> mark# tt(), mark# U63 X -> active# U63 mark X)
     (active# isNat 0() -> mark# tt(), mark# U63 X -> mark# X)
     (active# isNat 0() -> mark# tt(), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# isNat 0() -> mark# tt(), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# isNat 0() -> mark# tt(), mark# U61(X1, X2, X3) -> mark# X1)
     (active# isNat 0() -> mark# tt(), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# isNat 0() -> mark# tt(), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# isNat 0() -> mark# tt(), mark# U62(X1, X2) -> mark# X1)
     (active# isNat 0() -> mark# tt(), mark# U53 X -> U53# mark X)
     (active# isNat 0() -> mark# tt(), mark# U53 X -> active# U53 mark X)
     (active# isNat 0() -> mark# tt(), mark# U53 X -> mark# X)
     (active# isNat 0() -> mark# tt(), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# isNat 0() -> mark# tt(), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# isNat 0() -> mark# tt(), mark# U51(X1, X2, X3) -> mark# X1)
     (active# isNat 0() -> mark# tt(), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# isNat 0() -> mark# tt(), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# isNat 0() -> mark# tt(), mark# U52(X1, X2) -> mark# X1)
     (active# isNat 0() -> mark# tt(), mark# isNatIList X -> active# isNatIList X)
     (active# isNat 0() -> mark# tt(), mark# U43 X -> U43# mark X)
     (active# isNat 0() -> mark# tt(), mark# U43 X -> active# U43 mark X)
     (active# isNat 0() -> mark# tt(), mark# U43 X -> mark# X)
     (active# isNat 0() -> mark# tt(), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# isNat 0() -> mark# tt(), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# isNat 0() -> mark# tt(), mark# U41(X1, X2, X3) -> mark# X1)
     (active# isNat 0() -> mark# tt(), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# isNat 0() -> mark# tt(), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# isNat 0() -> mark# tt(), mark# U42(X1, X2) -> mark# X1)
     (active# isNat 0() -> mark# tt(), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# isNat 0() -> mark# tt(), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# isNat 0() -> mark# tt(), mark# U31(X1, X2) -> mark# X1)
     (active# isNat 0() -> mark# tt(), mark# U32 X -> U32# mark X)
     (active# isNat 0() -> mark# tt(), mark# U32 X -> active# U32 mark X)
     (active# isNat 0() -> mark# tt(), mark# U32 X -> mark# X)
     (active# isNat 0() -> mark# tt(), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# isNat 0() -> mark# tt(), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# isNat 0() -> mark# tt(), mark# U21(X1, X2) -> mark# X1)
     (active# isNat 0() -> mark# tt(), mark# isNat X -> active# isNat X)
     (active# isNat 0() -> mark# tt(), mark# U22 X -> U22# mark X)
     (active# isNat 0() -> mark# tt(), mark# U22 X -> active# U22 mark X)
     (active# isNat 0() -> mark# tt(), mark# U22 X -> mark# X)
     (active# isNat 0() -> mark# tt(), mark# tt() -> active# tt())
     (active# isNat 0() -> mark# tt(), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# isNat 0() -> mark# tt(), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# isNat 0() -> mark# tt(), mark# U11(X1, X2) -> mark# X1)
     (active# isNat 0() -> mark# tt(), mark# isNatList X -> active# isNatList X)
     (active# isNat 0() -> mark# tt(), mark# U12 X -> U12# mark X)
     (active# isNat 0() -> mark# tt(), mark# U12 X -> active# U12 mark X)
     (active# isNat 0() -> mark# tt(), mark# U12 X -> mark# X)
     (active# isNat 0() -> mark# tt(), mark# zeros() -> active# zeros())
     (active# isNat 0() -> mark# tt(), mark# 0() -> active# 0())
     (active# isNat 0() -> mark# tt(), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# isNat 0() -> mark# tt(), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# isNat 0() -> mark# tt(), mark# cons(X1, X2) -> mark# X1)
     (active# U43 tt() -> mark# tt(), mark# isNatKind X -> active# isNatKind X)
     (active# U43 tt() -> mark# tt(), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# U43 tt() -> mark# tt(), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# U43 tt() -> mark# tt(), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# U43 tt() -> mark# tt(), mark# and(X1, X2) -> mark# X1)
     (active# U43 tt() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# U43 tt() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# U43 tt() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# U43 tt() -> mark# tt(), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# U43 tt() -> mark# tt(), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# U43 tt() -> mark# tt(), mark# take(X1, X2) -> mark# X2)
     (active# U43 tt() -> mark# tt(), mark# take(X1, X2) -> mark# X1)
     (active# U43 tt() -> mark# tt(), mark# U81 X -> U81# mark X)
     (active# U43 tt() -> mark# tt(), mark# U81 X -> active# U81 mark X)
     (active# U43 tt() -> mark# tt(), mark# U81 X -> mark# X)
     (active# U43 tt() -> mark# tt(), mark# nil() -> active# nil())
     (active# U43 tt() -> mark# tt(), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# U43 tt() -> mark# tt(), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# U43 tt() -> mark# tt(), mark# U71(X1, X2) -> mark# X1)
     (active# U43 tt() -> mark# tt(), mark# length X -> length# mark X)
     (active# U43 tt() -> mark# tt(), mark# length X -> active# length mark X)
     (active# U43 tt() -> mark# tt(), mark# length X -> mark# X)
     (active# U43 tt() -> mark# tt(), mark# s X -> s# mark X)
     (active# U43 tt() -> mark# tt(), mark# s X -> active# s mark X)
     (active# U43 tt() -> mark# tt(), mark# s X -> mark# X)
     (active# U43 tt() -> mark# tt(), mark# U63 X -> U63# mark X)
     (active# U43 tt() -> mark# tt(), mark# U63 X -> active# U63 mark X)
     (active# U43 tt() -> mark# tt(), mark# U63 X -> mark# X)
     (active# U43 tt() -> mark# tt(), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# U43 tt() -> mark# tt(), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# U43 tt() -> mark# tt(), mark# U61(X1, X2, X3) -> mark# X1)
     (active# U43 tt() -> mark# tt(), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# U43 tt() -> mark# tt(), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# U43 tt() -> mark# tt(), mark# U62(X1, X2) -> mark# X1)
     (active# U43 tt() -> mark# tt(), mark# U53 X -> U53# mark X)
     (active# U43 tt() -> mark# tt(), mark# U53 X -> active# U53 mark X)
     (active# U43 tt() -> mark# tt(), mark# U53 X -> mark# X)
     (active# U43 tt() -> mark# tt(), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# U43 tt() -> mark# tt(), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# U43 tt() -> mark# tt(), mark# U51(X1, X2, X3) -> mark# X1)
     (active# U43 tt() -> mark# tt(), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# U43 tt() -> mark# tt(), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# U43 tt() -> mark# tt(), mark# U52(X1, X2) -> mark# X1)
     (active# U43 tt() -> mark# tt(), mark# isNatIList X -> active# isNatIList X)
     (active# U43 tt() -> mark# tt(), mark# U43 X -> U43# mark X)
     (active# U43 tt() -> mark# tt(), mark# U43 X -> active# U43 mark X)
     (active# U43 tt() -> mark# tt(), mark# U43 X -> mark# X)
     (active# U43 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# U43 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# U43 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> mark# X1)
     (active# U43 tt() -> mark# tt(), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# U43 tt() -> mark# tt(), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# U43 tt() -> mark# tt(), mark# U42(X1, X2) -> mark# X1)
     (active# U43 tt() -> mark# tt(), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# U43 tt() -> mark# tt(), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# U43 tt() -> mark# tt(), mark# U31(X1, X2) -> mark# X1)
     (active# U43 tt() -> mark# tt(), mark# U32 X -> U32# mark X)
     (active# U43 tt() -> mark# tt(), mark# U32 X -> active# U32 mark X)
     (active# U43 tt() -> mark# tt(), mark# U32 X -> mark# X)
     (active# U43 tt() -> mark# tt(), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# U43 tt() -> mark# tt(), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# U43 tt() -> mark# tt(), mark# U21(X1, X2) -> mark# X1)
     (active# U43 tt() -> mark# tt(), mark# isNat X -> active# isNat X)
     (active# U43 tt() -> mark# tt(), mark# U22 X -> U22# mark X)
     (active# U43 tt() -> mark# tt(), mark# U22 X -> active# U22 mark X)
     (active# U43 tt() -> mark# tt(), mark# U22 X -> mark# X)
     (active# U43 tt() -> mark# tt(), mark# tt() -> active# tt())
     (active# U43 tt() -> mark# tt(), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# U43 tt() -> mark# tt(), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# U43 tt() -> mark# tt(), mark# U11(X1, X2) -> mark# X1)
     (active# U43 tt() -> mark# tt(), mark# isNatList X -> active# isNatList X)
     (active# U43 tt() -> mark# tt(), mark# U12 X -> U12# mark X)
     (active# U43 tt() -> mark# tt(), mark# U12 X -> active# U12 mark X)
     (active# U43 tt() -> mark# tt(), mark# U12 X -> mark# X)
     (active# U43 tt() -> mark# tt(), mark# zeros() -> active# zeros())
     (active# U43 tt() -> mark# tt(), mark# 0() -> active# 0())
     (active# U43 tt() -> mark# tt(), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# U43 tt() -> mark# tt(), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# U43 tt() -> mark# tt(), mark# cons(X1, X2) -> mark# X1)
     (active# U53 tt() -> mark# tt(), mark# isNatKind X -> active# isNatKind X)
     (active# U53 tt() -> mark# tt(), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# U53 tt() -> mark# tt(), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# U53 tt() -> mark# tt(), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# U53 tt() -> mark# tt(), mark# and(X1, X2) -> mark# X1)
     (active# U53 tt() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# U53 tt() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# U53 tt() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# U53 tt() -> mark# tt(), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# U53 tt() -> mark# tt(), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# U53 tt() -> mark# tt(), mark# take(X1, X2) -> mark# X2)
     (active# U53 tt() -> mark# tt(), mark# take(X1, X2) -> mark# X1)
     (active# U53 tt() -> mark# tt(), mark# U81 X -> U81# mark X)
     (active# U53 tt() -> mark# tt(), mark# U81 X -> active# U81 mark X)
     (active# U53 tt() -> mark# tt(), mark# U81 X -> mark# X)
     (active# U53 tt() -> mark# tt(), mark# nil() -> active# nil())
     (active# U53 tt() -> mark# tt(), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# U53 tt() -> mark# tt(), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# U53 tt() -> mark# tt(), mark# U71(X1, X2) -> mark# X1)
     (active# U53 tt() -> mark# tt(), mark# length X -> length# mark X)
     (active# U53 tt() -> mark# tt(), mark# length X -> active# length mark X)
     (active# U53 tt() -> mark# tt(), mark# length X -> mark# X)
     (active# U53 tt() -> mark# tt(), mark# s X -> s# mark X)
     (active# U53 tt() -> mark# tt(), mark# s X -> active# s mark X)
     (active# U53 tt() -> mark# tt(), mark# s X -> mark# X)
     (active# U53 tt() -> mark# tt(), mark# U63 X -> U63# mark X)
     (active# U53 tt() -> mark# tt(), mark# U63 X -> active# U63 mark X)
     (active# U53 tt() -> mark# tt(), mark# U63 X -> mark# X)
     (active# U53 tt() -> mark# tt(), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# U53 tt() -> mark# tt(), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# U53 tt() -> mark# tt(), mark# U61(X1, X2, X3) -> mark# X1)
     (active# U53 tt() -> mark# tt(), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# U53 tt() -> mark# tt(), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# U53 tt() -> mark# tt(), mark# U62(X1, X2) -> mark# X1)
     (active# U53 tt() -> mark# tt(), mark# U53 X -> U53# mark X)
     (active# U53 tt() -> mark# tt(), mark# U53 X -> active# U53 mark X)
     (active# U53 tt() -> mark# tt(), mark# U53 X -> mark# X)
     (active# U53 tt() -> mark# tt(), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# U53 tt() -> mark# tt(), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# U53 tt() -> mark# tt(), mark# U51(X1, X2, X3) -> mark# X1)
     (active# U53 tt() -> mark# tt(), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# U53 tt() -> mark# tt(), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# U53 tt() -> mark# tt(), mark# U52(X1, X2) -> mark# X1)
     (active# U53 tt() -> mark# tt(), mark# isNatIList X -> active# isNatIList X)
     (active# U53 tt() -> mark# tt(), mark# U43 X -> U43# mark X)
     (active# U53 tt() -> mark# tt(), mark# U43 X -> active# U43 mark X)
     (active# U53 tt() -> mark# tt(), mark# U43 X -> mark# X)
     (active# U53 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# U53 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# U53 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> mark# X1)
     (active# U53 tt() -> mark# tt(), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# U53 tt() -> mark# tt(), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# U53 tt() -> mark# tt(), mark# U42(X1, X2) -> mark# X1)
     (active# U53 tt() -> mark# tt(), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# U53 tt() -> mark# tt(), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# U53 tt() -> mark# tt(), mark# U31(X1, X2) -> mark# X1)
     (active# U53 tt() -> mark# tt(), mark# U32 X -> U32# mark X)
     (active# U53 tt() -> mark# tt(), mark# U32 X -> active# U32 mark X)
     (active# U53 tt() -> mark# tt(), mark# U32 X -> mark# X)
     (active# U53 tt() -> mark# tt(), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# U53 tt() -> mark# tt(), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# U53 tt() -> mark# tt(), mark# U21(X1, X2) -> mark# X1)
     (active# U53 tt() -> mark# tt(), mark# isNat X -> active# isNat X)
     (active# U53 tt() -> mark# tt(), mark# U22 X -> U22# mark X)
     (active# U53 tt() -> mark# tt(), mark# U22 X -> active# U22 mark X)
     (active# U53 tt() -> mark# tt(), mark# U22 X -> mark# X)
     (active# U53 tt() -> mark# tt(), mark# tt() -> active# tt())
     (active# U53 tt() -> mark# tt(), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# U53 tt() -> mark# tt(), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# U53 tt() -> mark# tt(), mark# U11(X1, X2) -> mark# X1)
     (active# U53 tt() -> mark# tt(), mark# isNatList X -> active# isNatList X)
     (active# U53 tt() -> mark# tt(), mark# U12 X -> U12# mark X)
     (active# U53 tt() -> mark# tt(), mark# U12 X -> active# U12 mark X)
     (active# U53 tt() -> mark# tt(), mark# U12 X -> mark# X)
     (active# U53 tt() -> mark# tt(), mark# zeros() -> active# zeros())
     (active# U53 tt() -> mark# tt(), mark# 0() -> active# 0())
     (active# U53 tt() -> mark# tt(), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# U53 tt() -> mark# tt(), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# U53 tt() -> mark# tt(), mark# cons(X1, X2) -> mark# X1)
     (active# length nil() -> mark# 0(), mark# isNatKind X -> active# isNatKind X)
     (active# length nil() -> mark# 0(), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# length nil() -> mark# 0(), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# length nil() -> mark# 0(), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# length nil() -> mark# 0(), mark# and(X1, X2) -> mark# X1)
     (active# length nil() -> mark# 0(), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# length nil() -> mark# 0(), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# length nil() -> mark# 0(), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# length nil() -> mark# 0(), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# length nil() -> mark# 0(), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# length nil() -> mark# 0(), mark# take(X1, X2) -> mark# X2)
     (active# length nil() -> mark# 0(), mark# take(X1, X2) -> mark# X1)
     (active# length nil() -> mark# 0(), mark# U81 X -> U81# mark X)
     (active# length nil() -> mark# 0(), mark# U81 X -> active# U81 mark X)
     (active# length nil() -> mark# 0(), mark# U81 X -> mark# X)
     (active# length nil() -> mark# 0(), mark# nil() -> active# nil())
     (active# length nil() -> mark# 0(), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# length nil() -> mark# 0(), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# length nil() -> mark# 0(), mark# U71(X1, X2) -> mark# X1)
     (active# length nil() -> mark# 0(), mark# length X -> length# mark X)
     (active# length nil() -> mark# 0(), mark# length X -> active# length mark X)
     (active# length nil() -> mark# 0(), mark# length X -> mark# X)
     (active# length nil() -> mark# 0(), mark# s X -> s# mark X)
     (active# length nil() -> mark# 0(), mark# s X -> active# s mark X)
     (active# length nil() -> mark# 0(), mark# s X -> mark# X)
     (active# length nil() -> mark# 0(), mark# U63 X -> U63# mark X)
     (active# length nil() -> mark# 0(), mark# U63 X -> active# U63 mark X)
     (active# length nil() -> mark# 0(), mark# U63 X -> mark# X)
     (active# length nil() -> mark# 0(), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# length nil() -> mark# 0(), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# length nil() -> mark# 0(), mark# U61(X1, X2, X3) -> mark# X1)
     (active# length nil() -> mark# 0(), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# length nil() -> mark# 0(), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# length nil() -> mark# 0(), mark# U62(X1, X2) -> mark# X1)
     (active# length nil() -> mark# 0(), mark# U53 X -> U53# mark X)
     (active# length nil() -> mark# 0(), mark# U53 X -> active# U53 mark X)
     (active# length nil() -> mark# 0(), mark# U53 X -> mark# X)
     (active# length nil() -> mark# 0(), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# length nil() -> mark# 0(), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# length nil() -> mark# 0(), mark# U51(X1, X2, X3) -> mark# X1)
     (active# length nil() -> mark# 0(), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# length nil() -> mark# 0(), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# length nil() -> mark# 0(), mark# U52(X1, X2) -> mark# X1)
     (active# length nil() -> mark# 0(), mark# isNatIList X -> active# isNatIList X)
     (active# length nil() -> mark# 0(), mark# U43 X -> U43# mark X)
     (active# length nil() -> mark# 0(), mark# U43 X -> active# U43 mark X)
     (active# length nil() -> mark# 0(), mark# U43 X -> mark# X)
     (active# length nil() -> mark# 0(), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# length nil() -> mark# 0(), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# length nil() -> mark# 0(), mark# U41(X1, X2, X3) -> mark# X1)
     (active# length nil() -> mark# 0(), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# length nil() -> mark# 0(), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# length nil() -> mark# 0(), mark# U42(X1, X2) -> mark# X1)
     (active# length nil() -> mark# 0(), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# length nil() -> mark# 0(), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# length nil() -> mark# 0(), mark# U31(X1, X2) -> mark# X1)
     (active# length nil() -> mark# 0(), mark# U32 X -> U32# mark X)
     (active# length nil() -> mark# 0(), mark# U32 X -> active# U32 mark X)
     (active# length nil() -> mark# 0(), mark# U32 X -> mark# X)
     (active# length nil() -> mark# 0(), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# length nil() -> mark# 0(), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# length nil() -> mark# 0(), mark# U21(X1, X2) -> mark# X1)
     (active# length nil() -> mark# 0(), mark# isNat X -> active# isNat X)
     (active# length nil() -> mark# 0(), mark# U22 X -> U22# mark X)
     (active# length nil() -> mark# 0(), mark# U22 X -> active# U22 mark X)
     (active# length nil() -> mark# 0(), mark# U22 X -> mark# X)
     (active# length nil() -> mark# 0(), mark# tt() -> active# tt())
     (active# length nil() -> mark# 0(), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# length nil() -> mark# 0(), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# length nil() -> mark# 0(), mark# U11(X1, X2) -> mark# X1)
     (active# length nil() -> mark# 0(), mark# isNatList X -> active# isNatList X)
     (active# length nil() -> mark# 0(), mark# U12 X -> U12# mark X)
     (active# length nil() -> mark# 0(), mark# U12 X -> active# U12 mark X)
     (active# length nil() -> mark# 0(), mark# U12 X -> mark# X)
     (active# length nil() -> mark# 0(), mark# zeros() -> active# zeros())
     (active# length nil() -> mark# 0(), mark# 0() -> active# 0())
     (active# length nil() -> mark# 0(), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# length nil() -> mark# 0(), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# length nil() -> mark# 0(), mark# cons(X1, X2) -> mark# X1)
     (active# and(tt(), X) -> mark# X, mark# isNatKind X -> active# isNatKind X)
     (active# and(tt(), X) -> mark# X, mark# isNatIListKind X -> active# isNatIListKind X)
     (active# and(tt(), X) -> mark# X, mark# and(X1, X2) -> and#(mark X1, X2))
     (active# and(tt(), X) -> mark# X, mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# and(tt(), X) -> mark# X, mark# and(X1, X2) -> mark# X1)
     (active# and(tt(), X) -> mark# X, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# and(tt(), X) -> mark# X, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# and(tt(), X) -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# and(tt(), X) -> mark# X, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# and(tt(), X) -> mark# X, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# and(tt(), X) -> mark# X, mark# take(X1, X2) -> mark# X2)
     (active# and(tt(), X) -> mark# X, mark# take(X1, X2) -> mark# X1)
     (active# and(tt(), X) -> mark# X, mark# U81 X -> U81# mark X)
     (active# and(tt(), X) -> mark# X, mark# U81 X -> active# U81 mark X)
     (active# and(tt(), X) -> mark# X, mark# U81 X -> mark# X)
     (active# and(tt(), X) -> mark# X, mark# nil() -> active# nil())
     (active# and(tt(), X) -> mark# X, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# and(tt(), X) -> mark# X, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# and(tt(), X) -> mark# X, mark# U71(X1, X2) -> mark# X1)
     (active# and(tt(), X) -> mark# X, mark# length X -> length# mark X)
     (active# and(tt(), X) -> mark# X, mark# length X -> active# length mark X)
     (active# and(tt(), X) -> mark# X, mark# length X -> mark# X)
     (active# and(tt(), X) -> mark# X, mark# s X -> s# mark X)
     (active# and(tt(), X) -> mark# X, mark# s X -> active# s mark X)
     (active# and(tt(), X) -> mark# X, mark# s X -> mark# X)
     (active# and(tt(), X) -> mark# X, mark# U63 X -> U63# mark X)
     (active# and(tt(), X) -> mark# X, mark# U63 X -> active# U63 mark X)
     (active# and(tt(), X) -> mark# X, mark# U63 X -> mark# X)
     (active# and(tt(), X) -> mark# X, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# and(tt(), X) -> mark# X, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# and(tt(), X) -> mark# X, mark# U61(X1, X2, X3) -> mark# X1)
     (active# and(tt(), X) -> mark# X, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# and(tt(), X) -> mark# X, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# and(tt(), X) -> mark# X, mark# U62(X1, X2) -> mark# X1)
     (active# and(tt(), X) -> mark# X, mark# U53 X -> U53# mark X)
     (active# and(tt(), X) -> mark# X, mark# U53 X -> active# U53 mark X)
     (active# and(tt(), X) -> mark# X, mark# U53 X -> mark# X)
     (active# and(tt(), X) -> mark# X, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# and(tt(), X) -> mark# X, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# and(tt(), X) -> mark# X, mark# U51(X1, X2, X3) -> mark# X1)
     (active# and(tt(), X) -> mark# X, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# and(tt(), X) -> mark# X, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# and(tt(), X) -> mark# X, mark# U52(X1, X2) -> mark# X1)
     (active# and(tt(), X) -> mark# X, mark# isNatIList X -> active# isNatIList X)
     (active# and(tt(), X) -> mark# X, mark# U43 X -> U43# mark X)
     (active# and(tt(), X) -> mark# X, mark# U43 X -> active# U43 mark X)
     (active# and(tt(), X) -> mark# X, mark# U43 X -> mark# X)
     (active# and(tt(), X) -> mark# X, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# and(tt(), X) -> mark# X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# and(tt(), X) -> mark# X, mark# U41(X1, X2, X3) -> mark# X1)
     (active# and(tt(), X) -> mark# X, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# and(tt(), X) -> mark# X, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# and(tt(), X) -> mark# X, mark# U42(X1, X2) -> mark# X1)
     (active# and(tt(), X) -> mark# X, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# and(tt(), X) -> mark# X, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# and(tt(), X) -> mark# X, mark# U31(X1, X2) -> mark# X1)
     (active# and(tt(), X) -> mark# X, mark# U32 X -> U32# mark X)
     (active# and(tt(), X) -> mark# X, mark# U32 X -> active# U32 mark X)
     (active# and(tt(), X) -> mark# X, mark# U32 X -> mark# X)
     (active# and(tt(), X) -> mark# X, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# and(tt(), X) -> mark# X, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# and(tt(), X) -> mark# X, mark# U21(X1, X2) -> mark# X1)
     (active# and(tt(), X) -> mark# X, mark# isNat X -> active# isNat X)
     (active# and(tt(), X) -> mark# X, mark# U22 X -> U22# mark X)
     (active# and(tt(), X) -> mark# X, mark# U22 X -> active# U22 mark X)
     (active# and(tt(), X) -> mark# X, mark# U22 X -> mark# X)
     (active# and(tt(), X) -> mark# X, mark# tt() -> active# tt())
     (active# and(tt(), X) -> mark# X, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# and(tt(), X) -> mark# X, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# and(tt(), X) -> mark# X, mark# U11(X1, X2) -> mark# X1)
     (active# and(tt(), X) -> mark# X, mark# isNatList X -> active# isNatList X)
     (active# and(tt(), X) -> mark# X, mark# U12 X -> U12# mark X)
     (active# and(tt(), X) -> mark# X, mark# U12 X -> active# U12 mark X)
     (active# and(tt(), X) -> mark# X, mark# U12 X -> mark# X)
     (active# and(tt(), X) -> mark# X, mark# zeros() -> active# zeros())
     (active# and(tt(), X) -> mark# X, mark# 0() -> active# 0())
     (active# and(tt(), X) -> mark# X, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# and(tt(), X) -> mark# X, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# and(tt(), X) -> mark# X, mark# cons(X1, X2) -> mark# X1)
     (active# isNatIListKind nil() -> mark# tt(), mark# isNatKind X -> active# isNatKind X)
     (active# isNatIListKind nil() -> mark# tt(), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# isNatIListKind nil() -> mark# tt(), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# isNatIListKind nil() -> mark# tt(), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# isNatIListKind nil() -> mark# tt(), mark# and(X1, X2) -> mark# X1)
     (active# isNatIListKind nil() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# isNatIListKind nil() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# isNatIListKind nil() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# isNatIListKind nil() -> mark# tt(), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# isNatIListKind nil() -> mark# tt(), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# isNatIListKind nil() -> mark# tt(), mark# take(X1, X2) -> mark# X2)
     (active# isNatIListKind nil() -> mark# tt(), mark# take(X1, X2) -> mark# X1)
     (active# isNatIListKind nil() -> mark# tt(), mark# U81 X -> U81# mark X)
     (active# isNatIListKind nil() -> mark# tt(), mark# U81 X -> active# U81 mark X)
     (active# isNatIListKind nil() -> mark# tt(), mark# U81 X -> mark# X)
     (active# isNatIListKind nil() -> mark# tt(), mark# nil() -> active# nil())
     (active# isNatIListKind nil() -> mark# tt(), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# isNatIListKind nil() -> mark# tt(), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# isNatIListKind nil() -> mark# tt(), mark# U71(X1, X2) -> mark# X1)
     (active# isNatIListKind nil() -> mark# tt(), mark# length X -> length# mark X)
     (active# isNatIListKind nil() -> mark# tt(), mark# length X -> active# length mark X)
     (active# isNatIListKind nil() -> mark# tt(), mark# length X -> mark# X)
     (active# isNatIListKind nil() -> mark# tt(), mark# s X -> s# mark X)
     (active# isNatIListKind nil() -> mark# tt(), mark# s X -> active# s mark X)
     (active# isNatIListKind nil() -> mark# tt(), mark# s X -> mark# X)
     (active# isNatIListKind nil() -> mark# tt(), mark# U63 X -> U63# mark X)
     (active# isNatIListKind nil() -> mark# tt(), mark# U63 X -> active# U63 mark X)
     (active# isNatIListKind nil() -> mark# tt(), mark# U63 X -> mark# X)
     (active# isNatIListKind nil() -> mark# tt(), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# isNatIListKind nil() -> mark# tt(), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# isNatIListKind nil() -> mark# tt(), mark# U61(X1, X2, X3) -> mark# X1)
     (active# isNatIListKind nil() -> mark# tt(), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# isNatIListKind nil() -> mark# tt(), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# isNatIListKind nil() -> mark# tt(), mark# U62(X1, X2) -> mark# X1)
     (active# isNatIListKind nil() -> mark# tt(), mark# U53 X -> U53# mark X)
     (active# isNatIListKind nil() -> mark# tt(), mark# U53 X -> active# U53 mark X)
     (active# isNatIListKind nil() -> mark# tt(), mark# U53 X -> mark# X)
     (active# isNatIListKind nil() -> mark# tt(), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# isNatIListKind nil() -> mark# tt(), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# isNatIListKind nil() -> mark# tt(), mark# U51(X1, X2, X3) -> mark# X1)
     (active# isNatIListKind nil() -> mark# tt(), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# isNatIListKind nil() -> mark# tt(), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# isNatIListKind nil() -> mark# tt(), mark# U52(X1, X2) -> mark# X1)
     (active# isNatIListKind nil() -> mark# tt(), mark# isNatIList X -> active# isNatIList X)
     (active# isNatIListKind nil() -> mark# tt(), mark# U43 X -> U43# mark X)
     (active# isNatIListKind nil() -> mark# tt(), mark# U43 X -> active# U43 mark X)
     (active# isNatIListKind nil() -> mark# tt(), mark# U43 X -> mark# X)
     (active# isNatIListKind nil() -> mark# tt(), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# isNatIListKind nil() -> mark# tt(), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# isNatIListKind nil() -> mark# tt(), mark# U41(X1, X2, X3) -> mark# X1)
     (active# isNatIListKind nil() -> mark# tt(), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# isNatIListKind nil() -> mark# tt(), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# isNatIListKind nil() -> mark# tt(), mark# U42(X1, X2) -> mark# X1)
     (active# isNatIListKind nil() -> mark# tt(), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# isNatIListKind nil() -> mark# tt(), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# isNatIListKind nil() -> mark# tt(), mark# U31(X1, X2) -> mark# X1)
     (active# isNatIListKind nil() -> mark# tt(), mark# U32 X -> U32# mark X)
     (active# isNatIListKind nil() -> mark# tt(), mark# U32 X -> active# U32 mark X)
     (active# isNatIListKind nil() -> mark# tt(), mark# U32 X -> mark# X)
     (active# isNatIListKind nil() -> mark# tt(), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# isNatIListKind nil() -> mark# tt(), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# isNatIListKind nil() -> mark# tt(), mark# U21(X1, X2) -> mark# X1)
     (active# isNatIListKind nil() -> mark# tt(), mark# isNat X -> active# isNat X)
     (active# isNatIListKind nil() -> mark# tt(), mark# U22 X -> U22# mark X)
     (active# isNatIListKind nil() -> mark# tt(), mark# U22 X -> active# U22 mark X)
     (active# isNatIListKind nil() -> mark# tt(), mark# U22 X -> mark# X)
     (active# isNatIListKind nil() -> mark# tt(), mark# tt() -> active# tt())
     (active# isNatIListKind nil() -> mark# tt(), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# isNatIListKind nil() -> mark# tt(), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# isNatIListKind nil() -> mark# tt(), mark# U11(X1, X2) -> mark# X1)
     (active# isNatIListKind nil() -> mark# tt(), mark# isNatList X -> active# isNatList X)
     (active# isNatIListKind nil() -> mark# tt(), mark# U12 X -> U12# mark X)
     (active# isNatIListKind nil() -> mark# tt(), mark# U12 X -> active# U12 mark X)
     (active# isNatIListKind nil() -> mark# tt(), mark# U12 X -> mark# X)
     (active# isNatIListKind nil() -> mark# tt(), mark# zeros() -> active# zeros())
     (active# isNatIListKind nil() -> mark# tt(), mark# 0() -> active# 0())
     (active# isNatIListKind nil() -> mark# tt(), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# isNatIListKind nil() -> mark# tt(), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# isNatIListKind nil() -> mark# tt(), mark# cons(X1, X2) -> mark# X1)
     (U12# mark X -> U12# X, U12# active X -> U12# X)
     (U12# mark X -> U12# X, U12# mark X -> U12# X)
     (isNatList# mark X -> isNatList# X, isNatList# active X -> isNatList# X)
     (isNatList# mark X -> isNatList# X, isNatList# mark X -> isNatList# X)
     (U22# mark X -> U22# X, U22# active X -> U22# X)
     (U22# mark X -> U22# X, U22# mark X -> U22# X)
     (isNat# mark X -> isNat# X, isNat# active X -> isNat# X)
     (isNat# mark X -> isNat# X, isNat# mark X -> isNat# X)
     (U32# mark X -> U32# X, U32# active X -> U32# X)
     (U32# mark X -> U32# X, U32# mark X -> U32# X)
     (U43# mark X -> U43# X, U43# active X -> U43# X)
     (U43# mark X -> U43# X, U43# mark X -> U43# X)
     (isNatIList# mark X -> isNatIList# X, isNatIList# active X -> isNatIList# X)
     (isNatIList# mark X -> isNatIList# X, isNatIList# mark X -> isNatIList# X)
     (U53# mark X -> U53# X, U53# active X -> U53# X)
     (U53# mark X -> U53# X, U53# mark X -> U53# X)
     (U63# mark X -> U63# X, U63# active X -> U63# X)
     (U63# mark X -> U63# X, U63# mark X -> U63# X)
     (s# mark X -> s# X, s# active X -> s# X)
     (s# mark X -> s# X, s# mark X -> s# X)
     (length# mark X -> length# X, length# active X -> length# X)
     (length# mark X -> length# X, length# mark X -> length# X)
     (U81# mark X -> U81# X, U81# active X -> U81# X)
     (U81# mark X -> U81# X, U81# mark X -> U81# X)
     (isNatIListKind# mark X -> isNatIListKind# X, isNatIListKind# active X -> isNatIListKind# X)
     (isNatIListKind# mark X -> isNatIListKind# X, isNatIListKind# mark X -> isNatIListKind# X)
     (isNatKind# mark X -> isNatKind# X, isNatKind# active X -> isNatKind# X)
     (isNatKind# mark X -> isNatKind# X, isNatKind# mark X -> isNatKind# X)
     (active# length cons(N, L) -> isNatList# L, isNatList# active X -> isNatList# X)
     (active# length cons(N, L) -> isNatList# L, isNatList# mark X -> isNatList# X)
     (active# U71(tt(), L) -> length# L, length# active X -> length# X)
     (active# U71(tt(), L) -> length# L, length# mark X -> length# X)
     (active# isNat length V1 -> U11#(isNatIListKind V1, V1), U11#(active X1, X2) -> U11#(X1, X2))
     (active# isNat length V1 -> U11#(isNatIListKind V1, V1), U11#(mark X1, X2) -> U11#(X1, X2))
     (active# isNat length V1 -> U11#(isNatIListKind V1, V1), U11#(X1, active X2) -> U11#(X1, X2))
     (active# isNat length V1 -> U11#(isNatIListKind V1, V1), U11#(X1, mark X2) -> U11#(X1, X2))
     (mark# U22 X -> active# U22 mark X, active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# U22 X -> active# U22 mark X, active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# U22 X -> active# U22 mark X, active# isNatKind s V1 -> isNatKind# V1)
     (mark# U22 X -> active# U22 mark X, active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# U22 X -> active# U22 mark X, active# isNatKind 0() -> mark# tt())
     (mark# U22 X -> active# U22 mark X, active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# U22 X -> active# U22 mark X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# U22 X -> active# U22 mark X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U22 X -> active# U22 mark X, active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U22 X -> active# U22 mark X, active# isNatIListKind nil() -> mark# tt())
     (mark# U22 X -> active# U22 mark X, active# isNatIListKind zeros() -> mark# tt())
     (mark# U22 X -> active# U22 mark X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# U22 X -> active# U22 mark X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# U22 X -> active# U22 mark X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U22 X -> active# U22 mark X, active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U22 X -> active# U22 mark X, active# and(tt(), X) -> mark# X)
     (mark# U22 X -> active# U22 mark X, active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# U22 X -> active# U22 mark X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# U22 X -> active# U22 mark X, active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# U22 X -> active# U22 mark X, active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# U22 X -> active# U22 mark X, active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# U22 X -> active# U22 mark X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# U22 X -> active# U22 mark X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# U22 X -> active# U22 mark X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# U22 X -> active# U22 mark X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U22 X -> active# U22 mark X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# U22 X -> active# U22 mark X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# U22 X -> active# U22 mark X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U22 X -> active# U22 mark X, active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# U22 X -> active# U22 mark X, active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# U22 X -> active# U22 mark X, active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# U22 X -> active# U22 mark X, active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U22 X -> active# U22 mark X, active# take(0(), IL) -> isNatIListKind# IL)
     (mark# U22 X -> active# U22 mark X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U22 X -> active# U22 mark X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# U22 X -> active# U22 mark X, active# take(0(), IL) -> isNatIList# IL)
     (mark# U22 X -> active# U22 mark X, active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# U22 X -> active# U22 mark X, active# U81 tt() -> mark# nil())
     (mark# U22 X -> active# U22 mark X, active# U71(tt(), L) -> length# L)
     (mark# U22 X -> active# U22 mark X, active# U71(tt(), L) -> s# length L)
     (mark# U22 X -> active# U22 mark X, active# U71(tt(), L) -> mark# s length L)
     (mark# U22 X -> active# U22 mark X, active# length nil() -> mark# 0())
     (mark# U22 X -> active# U22 mark X, active# length cons(N, L) -> isNatKind# N)
     (mark# U22 X -> active# U22 mark X, active# length cons(N, L) -> isNatIListKind# L)
     (mark# U22 X -> active# U22 mark X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# U22 X -> active# U22 mark X, active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# U22 X -> active# U22 mark X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# U22 X -> active# U22 mark X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U22 X -> active# U22 mark X, active# length cons(N, L) -> isNat# N)
     (mark# U22 X -> active# U22 mark X, active# length cons(N, L) -> isNatList# L)
     (mark# U22 X -> active# U22 mark X, active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U22 X -> active# U22 mark X, active# U63 tt() -> mark# tt())
     (mark# U22 X -> active# U22 mark X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# U22 X -> active# U22 mark X, active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# U22 X -> active# U22 mark X, active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# U22 X -> active# U22 mark X, active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# U22 X -> active# U22 mark X, active# U62(tt(), V2) -> isNatIList# V2)
     (mark# U22 X -> active# U22 mark X, active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# U22 X -> active# U22 mark X, active# U53 tt() -> mark# tt())
     (mark# U22 X -> active# U22 mark X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# U22 X -> active# U22 mark X, active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# U22 X -> active# U22 mark X, active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# U22 X -> active# U22 mark X, active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# U22 X -> active# U22 mark X, active# U52(tt(), V2) -> isNatList# V2)
     (mark# U22 X -> active# U22 mark X, active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# U22 X -> active# U22 mark X, active# isNatIList zeros() -> mark# tt())
     (mark# U22 X -> active# U22 mark X, active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# U22 X -> active# U22 mark X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U22 X -> active# U22 mark X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U22 X -> active# U22 mark X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U22 X -> active# U22 mark X, active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U22 X -> active# U22 mark X, active# isNatIList V -> isNatIListKind# V)
     (mark# U22 X -> active# U22 mark X, active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# U22 X -> active# U22 mark X, active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# U22 X -> active# U22 mark X, active# U43 tt() -> mark# tt())
     (mark# U22 X -> active# U22 mark X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# U22 X -> active# U22 mark X, active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# U22 X -> active# U22 mark X, active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# U22 X -> active# U22 mark X, active# U42(tt(), V2) -> isNatIList# V2)
     (mark# U22 X -> active# U22 mark X, active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# U22 X -> active# U22 mark X, active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# U22 X -> active# U22 mark X, active# U31(tt(), V) -> U32# isNatList V)
     (mark# U22 X -> active# U22 mark X, active# U31(tt(), V) -> isNatList# V)
     (mark# U22 X -> active# U22 mark X, active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# U22 X -> active# U22 mark X, active# U32 tt() -> mark# tt())
     (mark# U22 X -> active# U22 mark X, active# U21(tt(), V1) -> isNat# V1)
     (mark# U22 X -> active# U22 mark X, active# U21(tt(), V1) -> U22# isNat V1)
     (mark# U22 X -> active# U22 mark X, active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# U22 X -> active# U22 mark X, active# isNat length V1 -> isNatIListKind# V1)
     (mark# U22 X -> active# U22 mark X, active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# U22 X -> active# U22 mark X, active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# U22 X -> active# U22 mark X, active# isNat s V1 -> isNatKind# V1)
     (mark# U22 X -> active# U22 mark X, active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# U22 X -> active# U22 mark X, active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# U22 X -> active# U22 mark X, active# isNat 0() -> mark# tt())
     (mark# U22 X -> active# U22 mark X, active# U22 tt() -> mark# tt())
     (mark# U22 X -> active# U22 mark X, active# U11(tt(), V1) -> isNatList# V1)
     (mark# U22 X -> active# U22 mark X, active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# U22 X -> active# U22 mark X, active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# U22 X -> active# U22 mark X, active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# U22 X -> active# U22 mark X, active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# U22 X -> active# U22 mark X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U22 X -> active# U22 mark X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U22 X -> active# U22 mark X, active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U22 X -> active# U22 mark X, active# isNatList nil() -> mark# tt())
     (mark# U22 X -> active# U22 mark X, active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# U22 X -> active# U22 mark X, active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U22 X -> active# U22 mark X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U22 X -> active# U22 mark X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U22 X -> active# U22 mark X, active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U22 X -> active# U22 mark X, active# U12 tt() -> mark# tt())
     (mark# U22 X -> active# U22 mark X, active# zeros() -> cons#(0(), zeros()))
     (mark# U22 X -> active# U22 mark X, active# zeros() -> mark# cons(0(), zeros()))
     (mark# U43 X -> active# U43 mark X, active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# U43 X -> active# U43 mark X, active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# U43 X -> active# U43 mark X, active# isNatKind s V1 -> isNatKind# V1)
     (mark# U43 X -> active# U43 mark X, active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# U43 X -> active# U43 mark X, active# isNatKind 0() -> mark# tt())
     (mark# U43 X -> active# U43 mark X, active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# U43 X -> active# U43 mark X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# U43 X -> active# U43 mark X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U43 X -> active# U43 mark X, active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U43 X -> active# U43 mark X, active# isNatIListKind nil() -> mark# tt())
     (mark# U43 X -> active# U43 mark X, active# isNatIListKind zeros() -> mark# tt())
     (mark# U43 X -> active# U43 mark X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# U43 X -> active# U43 mark X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# U43 X -> active# U43 mark X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U43 X -> active# U43 mark X, active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U43 X -> active# U43 mark X, active# and(tt(), X) -> mark# X)
     (mark# U43 X -> active# U43 mark X, active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# U43 X -> active# U43 mark X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# U43 X -> active# U43 mark X, active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# U43 X -> active# U43 mark X, active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# U43 X -> active# U43 mark X, active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# U43 X -> active# U43 mark X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# U43 X -> active# U43 mark X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# U43 X -> active# U43 mark X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# U43 X -> active# U43 mark X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U43 X -> active# U43 mark X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# U43 X -> active# U43 mark X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# U43 X -> active# U43 mark X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U43 X -> active# U43 mark X, active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# U43 X -> active# U43 mark X, active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# U43 X -> active# U43 mark X, active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# U43 X -> active# U43 mark X, active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U43 X -> active# U43 mark X, active# take(0(), IL) -> isNatIListKind# IL)
     (mark# U43 X -> active# U43 mark X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U43 X -> active# U43 mark X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# U43 X -> active# U43 mark X, active# take(0(), IL) -> isNatIList# IL)
     (mark# U43 X -> active# U43 mark X, active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# U43 X -> active# U43 mark X, active# U81 tt() -> mark# nil())
     (mark# U43 X -> active# U43 mark X, active# U71(tt(), L) -> length# L)
     (mark# U43 X -> active# U43 mark X, active# U71(tt(), L) -> s# length L)
     (mark# U43 X -> active# U43 mark X, active# U71(tt(), L) -> mark# s length L)
     (mark# U43 X -> active# U43 mark X, active# length nil() -> mark# 0())
     (mark# U43 X -> active# U43 mark X, active# length cons(N, L) -> isNatKind# N)
     (mark# U43 X -> active# U43 mark X, active# length cons(N, L) -> isNatIListKind# L)
     (mark# U43 X -> active# U43 mark X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# U43 X -> active# U43 mark X, active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# U43 X -> active# U43 mark X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# U43 X -> active# U43 mark X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U43 X -> active# U43 mark X, active# length cons(N, L) -> isNat# N)
     (mark# U43 X -> active# U43 mark X, active# length cons(N, L) -> isNatList# L)
     (mark# U43 X -> active# U43 mark X, active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U43 X -> active# U43 mark X, active# U63 tt() -> mark# tt())
     (mark# U43 X -> active# U43 mark X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# U43 X -> active# U43 mark X, active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# U43 X -> active# U43 mark X, active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# U43 X -> active# U43 mark X, active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# U43 X -> active# U43 mark X, active# U62(tt(), V2) -> isNatIList# V2)
     (mark# U43 X -> active# U43 mark X, active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# U43 X -> active# U43 mark X, active# U53 tt() -> mark# tt())
     (mark# U43 X -> active# U43 mark X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# U43 X -> active# U43 mark X, active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# U43 X -> active# U43 mark X, active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# U43 X -> active# U43 mark X, active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# U43 X -> active# U43 mark X, active# U52(tt(), V2) -> isNatList# V2)
     (mark# U43 X -> active# U43 mark X, active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# U43 X -> active# U43 mark X, active# isNatIList zeros() -> mark# tt())
     (mark# U43 X -> active# U43 mark X, active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# U43 X -> active# U43 mark X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U43 X -> active# U43 mark X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U43 X -> active# U43 mark X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U43 X -> active# U43 mark X, active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U43 X -> active# U43 mark X, active# isNatIList V -> isNatIListKind# V)
     (mark# U43 X -> active# U43 mark X, active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# U43 X -> active# U43 mark X, active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# U43 X -> active# U43 mark X, active# U43 tt() -> mark# tt())
     (mark# U43 X -> active# U43 mark X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# U43 X -> active# U43 mark X, active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# U43 X -> active# U43 mark X, active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# U43 X -> active# U43 mark X, active# U42(tt(), V2) -> isNatIList# V2)
     (mark# U43 X -> active# U43 mark X, active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# U43 X -> active# U43 mark X, active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# U43 X -> active# U43 mark X, active# U31(tt(), V) -> U32# isNatList V)
     (mark# U43 X -> active# U43 mark X, active# U31(tt(), V) -> isNatList# V)
     (mark# U43 X -> active# U43 mark X, active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# U43 X -> active# U43 mark X, active# U32 tt() -> mark# tt())
     (mark# U43 X -> active# U43 mark X, active# U21(tt(), V1) -> isNat# V1)
     (mark# U43 X -> active# U43 mark X, active# U21(tt(), V1) -> U22# isNat V1)
     (mark# U43 X -> active# U43 mark X, active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# U43 X -> active# U43 mark X, active# isNat length V1 -> isNatIListKind# V1)
     (mark# U43 X -> active# U43 mark X, active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# U43 X -> active# U43 mark X, active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# U43 X -> active# U43 mark X, active# isNat s V1 -> isNatKind# V1)
     (mark# U43 X -> active# U43 mark X, active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# U43 X -> active# U43 mark X, active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# U43 X -> active# U43 mark X, active# isNat 0() -> mark# tt())
     (mark# U43 X -> active# U43 mark X, active# U22 tt() -> mark# tt())
     (mark# U43 X -> active# U43 mark X, active# U11(tt(), V1) -> isNatList# V1)
     (mark# U43 X -> active# U43 mark X, active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# U43 X -> active# U43 mark X, active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# U43 X -> active# U43 mark X, active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# U43 X -> active# U43 mark X, active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# U43 X -> active# U43 mark X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U43 X -> active# U43 mark X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U43 X -> active# U43 mark X, active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U43 X -> active# U43 mark X, active# isNatList nil() -> mark# tt())
     (mark# U43 X -> active# U43 mark X, active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# U43 X -> active# U43 mark X, active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U43 X -> active# U43 mark X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U43 X -> active# U43 mark X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U43 X -> active# U43 mark X, active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U43 X -> active# U43 mark X, active# U12 tt() -> mark# tt())
     (mark# U43 X -> active# U43 mark X, active# zeros() -> cons#(0(), zeros()))
     (mark# U43 X -> active# U43 mark X, active# zeros() -> mark# cons(0(), zeros()))
     (mark# U63 X -> active# U63 mark X, active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# U63 X -> active# U63 mark X, active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# U63 X -> active# U63 mark X, active# isNatKind s V1 -> isNatKind# V1)
     (mark# U63 X -> active# U63 mark X, active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# U63 X -> active# U63 mark X, active# isNatKind 0() -> mark# tt())
     (mark# U63 X -> active# U63 mark X, active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# U63 X -> active# U63 mark X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# U63 X -> active# U63 mark X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U63 X -> active# U63 mark X, active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U63 X -> active# U63 mark X, active# isNatIListKind nil() -> mark# tt())
     (mark# U63 X -> active# U63 mark X, active# isNatIListKind zeros() -> mark# tt())
     (mark# U63 X -> active# U63 mark X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# U63 X -> active# U63 mark X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# U63 X -> active# U63 mark X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U63 X -> active# U63 mark X, active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U63 X -> active# U63 mark X, active# and(tt(), X) -> mark# X)
     (mark# U63 X -> active# U63 mark X, active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# U63 X -> active# U63 mark X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# U63 X -> active# U63 mark X, active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# U63 X -> active# U63 mark X, active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# U63 X -> active# U63 mark X, active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# U63 X -> active# U63 mark X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# U63 X -> active# U63 mark X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# U63 X -> active# U63 mark X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# U63 X -> active# U63 mark X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U63 X -> active# U63 mark X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# U63 X -> active# U63 mark X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# U63 X -> active# U63 mark X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U63 X -> active# U63 mark X, active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# U63 X -> active# U63 mark X, active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# U63 X -> active# U63 mark X, active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# U63 X -> active# U63 mark X, active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U63 X -> active# U63 mark X, active# take(0(), IL) -> isNatIListKind# IL)
     (mark# U63 X -> active# U63 mark X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U63 X -> active# U63 mark X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# U63 X -> active# U63 mark X, active# take(0(), IL) -> isNatIList# IL)
     (mark# U63 X -> active# U63 mark X, active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# U63 X -> active# U63 mark X, active# U81 tt() -> mark# nil())
     (mark# U63 X -> active# U63 mark X, active# U71(tt(), L) -> length# L)
     (mark# U63 X -> active# U63 mark X, active# U71(tt(), L) -> s# length L)
     (mark# U63 X -> active# U63 mark X, active# U71(tt(), L) -> mark# s length L)
     (mark# U63 X -> active# U63 mark X, active# length nil() -> mark# 0())
     (mark# U63 X -> active# U63 mark X, active# length cons(N, L) -> isNatKind# N)
     (mark# U63 X -> active# U63 mark X, active# length cons(N, L) -> isNatIListKind# L)
     (mark# U63 X -> active# U63 mark X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# U63 X -> active# U63 mark X, active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# U63 X -> active# U63 mark X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# U63 X -> active# U63 mark X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U63 X -> active# U63 mark X, active# length cons(N, L) -> isNat# N)
     (mark# U63 X -> active# U63 mark X, active# length cons(N, L) -> isNatList# L)
     (mark# U63 X -> active# U63 mark X, active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U63 X -> active# U63 mark X, active# U63 tt() -> mark# tt())
     (mark# U63 X -> active# U63 mark X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# U63 X -> active# U63 mark X, active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# U63 X -> active# U63 mark X, active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# U63 X -> active# U63 mark X, active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# U63 X -> active# U63 mark X, active# U62(tt(), V2) -> isNatIList# V2)
     (mark# U63 X -> active# U63 mark X, active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# U63 X -> active# U63 mark X, active# U53 tt() -> mark# tt())
     (mark# U63 X -> active# U63 mark X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# U63 X -> active# U63 mark X, active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# U63 X -> active# U63 mark X, active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# U63 X -> active# U63 mark X, active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# U63 X -> active# U63 mark X, active# U52(tt(), V2) -> isNatList# V2)
     (mark# U63 X -> active# U63 mark X, active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# U63 X -> active# U63 mark X, active# isNatIList zeros() -> mark# tt())
     (mark# U63 X -> active# U63 mark X, active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# U63 X -> active# U63 mark X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U63 X -> active# U63 mark X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U63 X -> active# U63 mark X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U63 X -> active# U63 mark X, active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U63 X -> active# U63 mark X, active# isNatIList V -> isNatIListKind# V)
     (mark# U63 X -> active# U63 mark X, active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# U63 X -> active# U63 mark X, active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# U63 X -> active# U63 mark X, active# U43 tt() -> mark# tt())
     (mark# U63 X -> active# U63 mark X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# U63 X -> active# U63 mark X, active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# U63 X -> active# U63 mark X, active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# U63 X -> active# U63 mark X, active# U42(tt(), V2) -> isNatIList# V2)
     (mark# U63 X -> active# U63 mark X, active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# U63 X -> active# U63 mark X, active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# U63 X -> active# U63 mark X, active# U31(tt(), V) -> U32# isNatList V)
     (mark# U63 X -> active# U63 mark X, active# U31(tt(), V) -> isNatList# V)
     (mark# U63 X -> active# U63 mark X, active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# U63 X -> active# U63 mark X, active# U32 tt() -> mark# tt())
     (mark# U63 X -> active# U63 mark X, active# U21(tt(), V1) -> isNat# V1)
     (mark# U63 X -> active# U63 mark X, active# U21(tt(), V1) -> U22# isNat V1)
     (mark# U63 X -> active# U63 mark X, active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# U63 X -> active# U63 mark X, active# isNat length V1 -> isNatIListKind# V1)
     (mark# U63 X -> active# U63 mark X, active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# U63 X -> active# U63 mark X, active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# U63 X -> active# U63 mark X, active# isNat s V1 -> isNatKind# V1)
     (mark# U63 X -> active# U63 mark X, active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# U63 X -> active# U63 mark X, active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# U63 X -> active# U63 mark X, active# isNat 0() -> mark# tt())
     (mark# U63 X -> active# U63 mark X, active# U22 tt() -> mark# tt())
     (mark# U63 X -> active# U63 mark X, active# U11(tt(), V1) -> isNatList# V1)
     (mark# U63 X -> active# U63 mark X, active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# U63 X -> active# U63 mark X, active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# U63 X -> active# U63 mark X, active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# U63 X -> active# U63 mark X, active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# U63 X -> active# U63 mark X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U63 X -> active# U63 mark X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U63 X -> active# U63 mark X, active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U63 X -> active# U63 mark X, active# isNatList nil() -> mark# tt())
     (mark# U63 X -> active# U63 mark X, active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# U63 X -> active# U63 mark X, active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U63 X -> active# U63 mark X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U63 X -> active# U63 mark X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U63 X -> active# U63 mark X, active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U63 X -> active# U63 mark X, active# U12 tt() -> mark# tt())
     (mark# U63 X -> active# U63 mark X, active# zeros() -> cons#(0(), zeros()))
     (mark# U63 X -> active# U63 mark X, active# zeros() -> mark# cons(0(), zeros()))
     (mark# length X -> active# length mark X, active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# length X -> active# length mark X, active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# length X -> active# length mark X, active# isNatKind s V1 -> isNatKind# V1)
     (mark# length X -> active# length mark X, active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# length X -> active# length mark X, active# isNatKind 0() -> mark# tt())
     (mark# length X -> active# length mark X, active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# length X -> active# length mark X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# length X -> active# length mark X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# length X -> active# length mark X, active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# length X -> active# length mark X, active# isNatIListKind nil() -> mark# tt())
     (mark# length X -> active# length mark X, active# isNatIListKind zeros() -> mark# tt())
     (mark# length X -> active# length mark X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# length X -> active# length mark X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# length X -> active# length mark X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# length X -> active# length mark X, active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# length X -> active# length mark X, active# and(tt(), X) -> mark# X)
     (mark# length X -> active# length mark X, active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# length X -> active# length mark X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# length X -> active# length mark X, active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# length X -> active# length mark X, active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# length X -> active# length mark X, active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# length X -> active# length mark X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# length X -> active# length mark X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# length X -> active# length mark X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# length X -> active# length mark X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# length X -> active# length mark X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# length X -> active# length mark X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# length X -> active# length mark X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# length X -> active# length mark X, active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# length X -> active# length mark X, active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# length X -> active# length mark X, active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# length X -> active# length mark X, active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# length X -> active# length mark X, active# take(0(), IL) -> isNatIListKind# IL)
     (mark# length X -> active# length mark X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# length X -> active# length mark X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# length X -> active# length mark X, active# take(0(), IL) -> isNatIList# IL)
     (mark# length X -> active# length mark X, active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# length X -> active# length mark X, active# U81 tt() -> mark# nil())
     (mark# length X -> active# length mark X, active# U71(tt(), L) -> length# L)
     (mark# length X -> active# length mark X, active# U71(tt(), L) -> s# length L)
     (mark# length X -> active# length mark X, active# U71(tt(), L) -> mark# s length L)
     (mark# length X -> active# length mark X, active# length nil() -> mark# 0())
     (mark# length X -> active# length mark X, active# length cons(N, L) -> isNatKind# N)
     (mark# length X -> active# length mark X, active# length cons(N, L) -> isNatIListKind# L)
     (mark# length X -> active# length mark X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# length X -> active# length mark X, active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# length X -> active# length mark X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# length X -> active# length mark X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# length X -> active# length mark X, active# length cons(N, L) -> isNat# N)
     (mark# length X -> active# length mark X, active# length cons(N, L) -> isNatList# L)
     (mark# length X -> active# length mark X, active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# length X -> active# length mark X, active# U63 tt() -> mark# tt())
     (mark# length X -> active# length mark X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# length X -> active# length mark X, active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# length X -> active# length mark X, active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# length X -> active# length mark X, active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# length X -> active# length mark X, active# U62(tt(), V2) -> isNatIList# V2)
     (mark# length X -> active# length mark X, active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# length X -> active# length mark X, active# U53 tt() -> mark# tt())
     (mark# length X -> active# length mark X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# length X -> active# length mark X, active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# length X -> active# length mark X, active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# length X -> active# length mark X, active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# length X -> active# length mark X, active# U52(tt(), V2) -> isNatList# V2)
     (mark# length X -> active# length mark X, active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# length X -> active# length mark X, active# isNatIList zeros() -> mark# tt())
     (mark# length X -> active# length mark X, active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# length X -> active# length mark X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# length X -> active# length mark X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# length X -> active# length mark X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# length X -> active# length mark X, active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# length X -> active# length mark X, active# isNatIList V -> isNatIListKind# V)
     (mark# length X -> active# length mark X, active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# length X -> active# length mark X, active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# length X -> active# length mark X, active# U43 tt() -> mark# tt())
     (mark# length X -> active# length mark X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# length X -> active# length mark X, active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# length X -> active# length mark X, active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# length X -> active# length mark X, active# U42(tt(), V2) -> isNatIList# V2)
     (mark# length X -> active# length mark X, active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# length X -> active# length mark X, active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# length X -> active# length mark X, active# U31(tt(), V) -> U32# isNatList V)
     (mark# length X -> active# length mark X, active# U31(tt(), V) -> isNatList# V)
     (mark# length X -> active# length mark X, active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# length X -> active# length mark X, active# U32 tt() -> mark# tt())
     (mark# length X -> active# length mark X, active# U21(tt(), V1) -> isNat# V1)
     (mark# length X -> active# length mark X, active# U21(tt(), V1) -> U22# isNat V1)
     (mark# length X -> active# length mark X, active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# length X -> active# length mark X, active# isNat length V1 -> isNatIListKind# V1)
     (mark# length X -> active# length mark X, active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# length X -> active# length mark X, active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# length X -> active# length mark X, active# isNat s V1 -> isNatKind# V1)
     (mark# length X -> active# length mark X, active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# length X -> active# length mark X, active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# length X -> active# length mark X, active# isNat 0() -> mark# tt())
     (mark# length X -> active# length mark X, active# U22 tt() -> mark# tt())
     (mark# length X -> active# length mark X, active# U11(tt(), V1) -> isNatList# V1)
     (mark# length X -> active# length mark X, active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# length X -> active# length mark X, active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# length X -> active# length mark X, active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# length X -> active# length mark X, active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# length X -> active# length mark X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# length X -> active# length mark X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# length X -> active# length mark X, active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# length X -> active# length mark X, active# isNatList nil() -> mark# tt())
     (mark# length X -> active# length mark X, active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# length X -> active# length mark X, active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# length X -> active# length mark X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# length X -> active# length mark X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# length X -> active# length mark X, active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# length X -> active# length mark X, active# U12 tt() -> mark# tt())
     (mark# length X -> active# length mark X, active# zeros() -> cons#(0(), zeros()))
     (mark# length X -> active# length mark X, active# zeros() -> mark# cons(0(), zeros()))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# isNatKind X -> active# isNatKind X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# isNatIListKind X -> active# isNatIListKind X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# and(X1, X2) -> and#(mark X1, X2))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# and(X1, X2) -> mark# X1)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# take(X1, X2) -> mark# X2)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# take(X1, X2) -> mark# X1)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U81 X -> U81# mark X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U81 X -> active# U81 mark X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U81 X -> mark# X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# nil() -> active# nil())
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U71(X1, X2) -> mark# X1)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# length X -> length# mark X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# length X -> active# length mark X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# length X -> mark# X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# s X -> s# mark X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# s X -> active# s mark X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# s X -> mark# X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U63 X -> U63# mark X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U63 X -> active# U63 mark X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U63 X -> mark# X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U61(X1, X2, X3) -> mark# X1)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U62(X1, X2) -> mark# X1)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U53 X -> U53# mark X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U53 X -> active# U53 mark X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U53 X -> mark# X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U51(X1, X2, X3) -> mark# X1)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U52(X1, X2) -> mark# X1)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# isNatIList X -> active# isNatIList X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U43 X -> U43# mark X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U43 X -> active# U43 mark X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U43 X -> mark# X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U41(X1, X2, X3) -> mark# X1)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U42(X1, X2) -> mark# X1)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U31(X1, X2) -> mark# X1)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U32 X -> U32# mark X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U32 X -> active# U32 mark X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U32 X -> mark# X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U21(X1, X2) -> mark# X1)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# isNat X -> active# isNat X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U22 X -> U22# mark X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U22 X -> active# U22 mark X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U22 X -> mark# X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# tt() -> active# tt())
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U11(X1, X2) -> mark# X1)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# isNatList X -> active# isNatList X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U12 X -> U12# mark X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U12 X -> active# U12 mark X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# U12 X -> mark# X)
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# zeros() -> active# zeros())
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# 0() -> active# 0())
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# U11(tt(), V1) -> mark# U12 isNatList V1, mark# cons(X1, X2) -> mark# X1)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# isNatKind X -> active# isNatKind X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# isNatIListKind X -> active# isNatIListKind X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# and(X1, X2) -> and#(mark X1, X2))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# and(X1, X2) -> mark# X1)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# take(X1, X2) -> mark# X2)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# take(X1, X2) -> mark# X1)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U81 X -> U81# mark X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U81 X -> active# U81 mark X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U81 X -> mark# X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# nil() -> active# nil())
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U71(X1, X2) -> mark# X1)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# length X -> length# mark X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# length X -> active# length mark X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# length X -> mark# X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# s X -> s# mark X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# s X -> active# s mark X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# s X -> mark# X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U63 X -> U63# mark X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U63 X -> active# U63 mark X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U63 X -> mark# X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U61(X1, X2, X3) -> mark# X1)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U62(X1, X2) -> mark# X1)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U53 X -> U53# mark X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U53 X -> active# U53 mark X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U53 X -> mark# X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U51(X1, X2, X3) -> mark# X1)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U52(X1, X2) -> mark# X1)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# isNatIList X -> active# isNatIList X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U43 X -> U43# mark X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U43 X -> active# U43 mark X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U43 X -> mark# X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U41(X1, X2, X3) -> mark# X1)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U42(X1, X2) -> mark# X1)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U31(X1, X2) -> mark# X1)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U32 X -> U32# mark X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U32 X -> active# U32 mark X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U32 X -> mark# X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U21(X1, X2) -> mark# X1)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# isNat X -> active# isNat X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U22 X -> U22# mark X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U22 X -> active# U22 mark X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U22 X -> mark# X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# tt() -> active# tt())
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U11(X1, X2) -> mark# X1)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# isNatList X -> active# isNatList X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U12 X -> U12# mark X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U12 X -> active# U12 mark X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# U12 X -> mark# X)
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# zeros() -> active# zeros())
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# 0() -> active# 0())
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# U31(tt(), V) -> mark# U32 isNatList V, mark# cons(X1, X2) -> mark# X1)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# isNatKind X -> active# isNatKind X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# isNatIListKind X -> active# isNatIListKind X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# and(X1, X2) -> and#(mark X1, X2))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# and(X1, X2) -> mark# X1)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# take(X1, X2) -> mark# X2)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# take(X1, X2) -> mark# X1)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U81 X -> U81# mark X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U81 X -> active# U81 mark X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U81 X -> mark# X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# nil() -> active# nil())
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U71(X1, X2) -> mark# X1)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# length X -> length# mark X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# length X -> active# length mark X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# length X -> mark# X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# s X -> s# mark X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# s X -> active# s mark X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# s X -> mark# X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U63 X -> U63# mark X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U63 X -> active# U63 mark X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U63 X -> mark# X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U61(X1, X2, X3) -> mark# X1)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U62(X1, X2) -> mark# X1)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U53 X -> U53# mark X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U53 X -> active# U53 mark X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U53 X -> mark# X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U51(X1, X2, X3) -> mark# X1)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U52(X1, X2) -> mark# X1)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# isNatIList X -> active# isNatIList X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U43 X -> U43# mark X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U43 X -> active# U43 mark X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U43 X -> mark# X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U41(X1, X2, X3) -> mark# X1)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U42(X1, X2) -> mark# X1)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U31(X1, X2) -> mark# X1)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U32 X -> U32# mark X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U32 X -> active# U32 mark X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U32 X -> mark# X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U21(X1, X2) -> mark# X1)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# isNat X -> active# isNat X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U22 X -> U22# mark X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U22 X -> active# U22 mark X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U22 X -> mark# X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# tt() -> active# tt())
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U11(X1, X2) -> mark# X1)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# isNatList X -> active# isNatList X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U12 X -> U12# mark X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U12 X -> active# U12 mark X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# U12 X -> mark# X)
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# zeros() -> active# zeros())
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# 0() -> active# 0())
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# U52(tt(), V2) -> mark# U53 isNatList V2, mark# cons(X1, X2) -> mark# X1)
     (active# U71(tt(), L) -> mark# s length L, mark# isNatKind X -> active# isNatKind X)
     (active# U71(tt(), L) -> mark# s length L, mark# isNatIListKind X -> active# isNatIListKind X)
     (active# U71(tt(), L) -> mark# s length L, mark# and(X1, X2) -> and#(mark X1, X2))
     (active# U71(tt(), L) -> mark# s length L, mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# U71(tt(), L) -> mark# s length L, mark# and(X1, X2) -> mark# X1)
     (active# U71(tt(), L) -> mark# s length L, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# U71(tt(), L) -> mark# s length L, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# U71(tt(), L) -> mark# s length L, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# U71(tt(), L) -> mark# s length L, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# U71(tt(), L) -> mark# s length L, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# U71(tt(), L) -> mark# s length L, mark# take(X1, X2) -> mark# X2)
     (active# U71(tt(), L) -> mark# s length L, mark# take(X1, X2) -> mark# X1)
     (active# U71(tt(), L) -> mark# s length L, mark# U81 X -> U81# mark X)
     (active# U71(tt(), L) -> mark# s length L, mark# U81 X -> active# U81 mark X)
     (active# U71(tt(), L) -> mark# s length L, mark# U81 X -> mark# X)
     (active# U71(tt(), L) -> mark# s length L, mark# nil() -> active# nil())
     (active# U71(tt(), L) -> mark# s length L, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# U71(tt(), L) -> mark# s length L, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# U71(tt(), L) -> mark# s length L, mark# U71(X1, X2) -> mark# X1)
     (active# U71(tt(), L) -> mark# s length L, mark# length X -> length# mark X)
     (active# U71(tt(), L) -> mark# s length L, mark# length X -> active# length mark X)
     (active# U71(tt(), L) -> mark# s length L, mark# length X -> mark# X)
     (active# U71(tt(), L) -> mark# s length L, mark# s X -> s# mark X)
     (active# U71(tt(), L) -> mark# s length L, mark# s X -> active# s mark X)
     (active# U71(tt(), L) -> mark# s length L, mark# s X -> mark# X)
     (active# U71(tt(), L) -> mark# s length L, mark# U63 X -> U63# mark X)
     (active# U71(tt(), L) -> mark# s length L, mark# U63 X -> active# U63 mark X)
     (active# U71(tt(), L) -> mark# s length L, mark# U63 X -> mark# X)
     (active# U71(tt(), L) -> mark# s length L, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# U71(tt(), L) -> mark# s length L, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# U71(tt(), L) -> mark# s length L, mark# U61(X1, X2, X3) -> mark# X1)
     (active# U71(tt(), L) -> mark# s length L, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# U71(tt(), L) -> mark# s length L, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# U71(tt(), L) -> mark# s length L, mark# U62(X1, X2) -> mark# X1)
     (active# U71(tt(), L) -> mark# s length L, mark# U53 X -> U53# mark X)
     (active# U71(tt(), L) -> mark# s length L, mark# U53 X -> active# U53 mark X)
     (active# U71(tt(), L) -> mark# s length L, mark# U53 X -> mark# X)
     (active# U71(tt(), L) -> mark# s length L, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# U71(tt(), L) -> mark# s length L, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# U71(tt(), L) -> mark# s length L, mark# U51(X1, X2, X3) -> mark# X1)
     (active# U71(tt(), L) -> mark# s length L, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# U71(tt(), L) -> mark# s length L, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# U71(tt(), L) -> mark# s length L, mark# U52(X1, X2) -> mark# X1)
     (active# U71(tt(), L) -> mark# s length L, mark# isNatIList X -> active# isNatIList X)
     (active# U71(tt(), L) -> mark# s length L, mark# U43 X -> U43# mark X)
     (active# U71(tt(), L) -> mark# s length L, mark# U43 X -> active# U43 mark X)
     (active# U71(tt(), L) -> mark# s length L, mark# U43 X -> mark# X)
     (active# U71(tt(), L) -> mark# s length L, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# U71(tt(), L) -> mark# s length L, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# U71(tt(), L) -> mark# s length L, mark# U41(X1, X2, X3) -> mark# X1)
     (active# U71(tt(), L) -> mark# s length L, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# U71(tt(), L) -> mark# s length L, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# U71(tt(), L) -> mark# s length L, mark# U42(X1, X2) -> mark# X1)
     (active# U71(tt(), L) -> mark# s length L, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# U71(tt(), L) -> mark# s length L, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# U71(tt(), L) -> mark# s length L, mark# U31(X1, X2) -> mark# X1)
     (active# U71(tt(), L) -> mark# s length L, mark# U32 X -> U32# mark X)
     (active# U71(tt(), L) -> mark# s length L, mark# U32 X -> active# U32 mark X)
     (active# U71(tt(), L) -> mark# s length L, mark# U32 X -> mark# X)
     (active# U71(tt(), L) -> mark# s length L, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# U71(tt(), L) -> mark# s length L, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# U71(tt(), L) -> mark# s length L, mark# U21(X1, X2) -> mark# X1)
     (active# U71(tt(), L) -> mark# s length L, mark# isNat X -> active# isNat X)
     (active# U71(tt(), L) -> mark# s length L, mark# U22 X -> U22# mark X)
     (active# U71(tt(), L) -> mark# s length L, mark# U22 X -> active# U22 mark X)
     (active# U71(tt(), L) -> mark# s length L, mark# U22 X -> mark# X)
     (active# U71(tt(), L) -> mark# s length L, mark# tt() -> active# tt())
     (active# U71(tt(), L) -> mark# s length L, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# U71(tt(), L) -> mark# s length L, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# U71(tt(), L) -> mark# s length L, mark# U11(X1, X2) -> mark# X1)
     (active# U71(tt(), L) -> mark# s length L, mark# isNatList X -> active# isNatList X)
     (active# U71(tt(), L) -> mark# s length L, mark# U12 X -> U12# mark X)
     (active# U71(tt(), L) -> mark# s length L, mark# U12 X -> active# U12 mark X)
     (active# U71(tt(), L) -> mark# s length L, mark# U12 X -> mark# X)
     (active# U71(tt(), L) -> mark# s length L, mark# zeros() -> active# zeros())
     (active# U71(tt(), L) -> mark# s length L, mark# 0() -> active# 0())
     (active# U71(tt(), L) -> mark# s length L, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# U71(tt(), L) -> mark# s length L, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# U71(tt(), L) -> mark# s length L, mark# cons(X1, X2) -> mark# X1)
     (active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), U71#(active X1, X2) -> U71#(X1, X2))
     (active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), U71#(mark X1, X2) -> U71#(X1, X2))
     (active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), U71#(X1, active X2) -> U71#(X1, X2))
     (active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), U71#(X1, mark X2) -> U71#(X1, X2))
     (mark# U11(X1, X2) -> mark# X1, mark# isNatKind X -> active# isNatKind X)
     (mark# U11(X1, X2) -> mark# X1, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# U11(X1, X2) -> mark# X1, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# U11(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# U11(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1)
     (mark# U11(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# U11(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# U11(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# U11(X1, X2) -> mark# X1, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# U11(X1, X2) -> mark# X1, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# U11(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2)
     (mark# U11(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1)
     (mark# U11(X1, X2) -> mark# X1, mark# U81 X -> U81# mark X)
     (mark# U11(X1, X2) -> mark# X1, mark# U81 X -> active# U81 mark X)
     (mark# U11(X1, X2) -> mark# X1, mark# U81 X -> mark# X)
     (mark# U11(X1, X2) -> mark# X1, mark# nil() -> active# nil())
     (mark# U11(X1, X2) -> mark# X1, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# U11(X1, X2) -> mark# X1, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# U11(X1, X2) -> mark# X1, mark# U71(X1, X2) -> mark# X1)
     (mark# U11(X1, X2) -> mark# X1, mark# length X -> length# mark X)
     (mark# U11(X1, X2) -> mark# X1, mark# length X -> active# length mark X)
     (mark# U11(X1, X2) -> mark# X1, mark# length X -> mark# X)
     (mark# U11(X1, X2) -> mark# X1, mark# s X -> s# mark X)
     (mark# U11(X1, X2) -> mark# X1, mark# s X -> active# s mark X)
     (mark# U11(X1, X2) -> mark# X1, mark# s X -> mark# X)
     (mark# U11(X1, X2) -> mark# X1, mark# U63 X -> U63# mark X)
     (mark# U11(X1, X2) -> mark# X1, mark# U63 X -> active# U63 mark X)
     (mark# U11(X1, X2) -> mark# X1, mark# U63 X -> mark# X)
     (mark# U11(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# U11(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# U11(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# U11(X1, X2) -> mark# X1, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# U11(X1, X2) -> mark# X1, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# U11(X1, X2) -> mark# X1, mark# U62(X1, X2) -> mark# X1)
     (mark# U11(X1, X2) -> mark# X1, mark# U53 X -> U53# mark X)
     (mark# U11(X1, X2) -> mark# X1, mark# U53 X -> active# U53 mark X)
     (mark# U11(X1, X2) -> mark# X1, mark# U53 X -> mark# X)
     (mark# U11(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# U11(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# U11(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# U11(X1, X2) -> mark# X1, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# U11(X1, X2) -> mark# X1, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# U11(X1, X2) -> mark# X1, mark# U52(X1, X2) -> mark# X1)
     (mark# U11(X1, X2) -> mark# X1, mark# isNatIList X -> active# isNatIList X)
     (mark# U11(X1, X2) -> mark# X1, mark# U43 X -> U43# mark X)
     (mark# U11(X1, X2) -> mark# X1, mark# U43 X -> active# U43 mark X)
     (mark# U11(X1, X2) -> mark# X1, mark# U43 X -> mark# X)
     (mark# U11(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# U11(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# U11(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# U11(X1, X2) -> mark# X1, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# U11(X1, X2) -> mark# X1, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# U11(X1, X2) -> mark# X1, mark# U42(X1, X2) -> mark# X1)
     (mark# U11(X1, X2) -> mark# X1, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# U11(X1, X2) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# U11(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1)
     (mark# U11(X1, X2) -> mark# X1, mark# U32 X -> U32# mark X)
     (mark# U11(X1, X2) -> mark# X1, mark# U32 X -> active# U32 mark X)
     (mark# U11(X1, X2) -> mark# X1, mark# U32 X -> mark# X)
     (mark# U11(X1, X2) -> mark# X1, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# U11(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# U11(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1)
     (mark# U11(X1, X2) -> mark# X1, mark# isNat X -> active# isNat X)
     (mark# U11(X1, X2) -> mark# X1, mark# U22 X -> U22# mark X)
     (mark# U11(X1, X2) -> mark# X1, mark# U22 X -> active# U22 mark X)
     (mark# U11(X1, X2) -> mark# X1, mark# U22 X -> mark# X)
     (mark# U11(X1, X2) -> mark# X1, mark# tt() -> active# tt())
     (mark# U11(X1, X2) -> mark# X1, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# U11(X1, X2) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# U11(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1)
     (mark# U11(X1, X2) -> mark# X1, mark# isNatList X -> active# isNatList X)
     (mark# U11(X1, X2) -> mark# X1, mark# U12 X -> U12# mark X)
     (mark# U11(X1, X2) -> mark# X1, mark# U12 X -> active# U12 mark X)
     (mark# U11(X1, X2) -> mark# X1, mark# U12 X -> mark# X)
     (mark# U11(X1, X2) -> mark# X1, mark# zeros() -> active# zeros())
     (mark# U11(X1, X2) -> mark# X1, mark# 0() -> active# 0())
     (mark# U11(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# U11(X1, X2) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# U11(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1)
     (mark# U31(X1, X2) -> mark# X1, mark# isNatKind X -> active# isNatKind X)
     (mark# U31(X1, X2) -> mark# X1, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# U31(X1, X2) -> mark# X1, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# U31(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# U31(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1)
     (mark# U31(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# U31(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# U31(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# U31(X1, X2) -> mark# X1, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# U31(X1, X2) -> mark# X1, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# U31(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2)
     (mark# U31(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1)
     (mark# U31(X1, X2) -> mark# X1, mark# U81 X -> U81# mark X)
     (mark# U31(X1, X2) -> mark# X1, mark# U81 X -> active# U81 mark X)
     (mark# U31(X1, X2) -> mark# X1, mark# U81 X -> mark# X)
     (mark# U31(X1, X2) -> mark# X1, mark# nil() -> active# nil())
     (mark# U31(X1, X2) -> mark# X1, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# U31(X1, X2) -> mark# X1, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# U31(X1, X2) -> mark# X1, mark# U71(X1, X2) -> mark# X1)
     (mark# U31(X1, X2) -> mark# X1, mark# length X -> length# mark X)
     (mark# U31(X1, X2) -> mark# X1, mark# length X -> active# length mark X)
     (mark# U31(X1, X2) -> mark# X1, mark# length X -> mark# X)
     (mark# U31(X1, X2) -> mark# X1, mark# s X -> s# mark X)
     (mark# U31(X1, X2) -> mark# X1, mark# s X -> active# s mark X)
     (mark# U31(X1, X2) -> mark# X1, mark# s X -> mark# X)
     (mark# U31(X1, X2) -> mark# X1, mark# U63 X -> U63# mark X)
     (mark# U31(X1, X2) -> mark# X1, mark# U63 X -> active# U63 mark X)
     (mark# U31(X1, X2) -> mark# X1, mark# U63 X -> mark# X)
     (mark# U31(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# U31(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# U31(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# U31(X1, X2) -> mark# X1, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# U31(X1, X2) -> mark# X1, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# U31(X1, X2) -> mark# X1, mark# U62(X1, X2) -> mark# X1)
     (mark# U31(X1, X2) -> mark# X1, mark# U53 X -> U53# mark X)
     (mark# U31(X1, X2) -> mark# X1, mark# U53 X -> active# U53 mark X)
     (mark# U31(X1, X2) -> mark# X1, mark# U53 X -> mark# X)
     (mark# U31(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# U31(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# U31(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# U31(X1, X2) -> mark# X1, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# U31(X1, X2) -> mark# X1, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# U31(X1, X2) -> mark# X1, mark# U52(X1, X2) -> mark# X1)
     (mark# U31(X1, X2) -> mark# X1, mark# isNatIList X -> active# isNatIList X)
     (mark# U31(X1, X2) -> mark# X1, mark# U43 X -> U43# mark X)
     (mark# U31(X1, X2) -> mark# X1, mark# U43 X -> active# U43 mark X)
     (mark# U31(X1, X2) -> mark# X1, mark# U43 X -> mark# X)
     (mark# U31(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# U31(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# U31(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# U31(X1, X2) -> mark# X1, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# U31(X1, X2) -> mark# X1, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# U31(X1, X2) -> mark# X1, mark# U42(X1, X2) -> mark# X1)
     (mark# U31(X1, X2) -> mark# X1, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# U31(X1, X2) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# U31(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1)
     (mark# U31(X1, X2) -> mark# X1, mark# U32 X -> U32# mark X)
     (mark# U31(X1, X2) -> mark# X1, mark# U32 X -> active# U32 mark X)
     (mark# U31(X1, X2) -> mark# X1, mark# U32 X -> mark# X)
     (mark# U31(X1, X2) -> mark# X1, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# U31(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# U31(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1)
     (mark# U31(X1, X2) -> mark# X1, mark# isNat X -> active# isNat X)
     (mark# U31(X1, X2) -> mark# X1, mark# U22 X -> U22# mark X)
     (mark# U31(X1, X2) -> mark# X1, mark# U22 X -> active# U22 mark X)
     (mark# U31(X1, X2) -> mark# X1, mark# U22 X -> mark# X)
     (mark# U31(X1, X2) -> mark# X1, mark# tt() -> active# tt())
     (mark# U31(X1, X2) -> mark# X1, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# U31(X1, X2) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# U31(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1)
     (mark# U31(X1, X2) -> mark# X1, mark# isNatList X -> active# isNatList X)
     (mark# U31(X1, X2) -> mark# X1, mark# U12 X -> U12# mark X)
     (mark# U31(X1, X2) -> mark# X1, mark# U12 X -> active# U12 mark X)
     (mark# U31(X1, X2) -> mark# X1, mark# U12 X -> mark# X)
     (mark# U31(X1, X2) -> mark# X1, mark# zeros() -> active# zeros())
     (mark# U31(X1, X2) -> mark# X1, mark# 0() -> active# 0())
     (mark# U31(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# U31(X1, X2) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# U31(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# isNatKind X -> active# isNatKind X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# and(X1, X2) -> mark# X1)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> mark# X2)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> mark# X1)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U81 X -> U81# mark X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U81 X -> active# U81 mark X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U81 X -> mark# X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# nil() -> active# nil())
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U71(X1, X2) -> mark# X1)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# length X -> length# mark X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# length X -> active# length mark X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# length X -> mark# X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# s X -> s# mark X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# s X -> active# s mark X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# s X -> mark# X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U63 X -> U63# mark X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U63 X -> active# U63 mark X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U63 X -> mark# X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> mark# X1)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U53 X -> U53# mark X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U53 X -> active# U53 mark X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U53 X -> mark# X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> mark# X1)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# isNatIList X -> active# isNatIList X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U43 X -> U43# mark X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U43 X -> active# U43 mark X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U43 X -> mark# X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> mark# X1)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U31(X1, X2) -> mark# X1)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U32 X -> U32# mark X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U32 X -> active# U32 mark X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U32 X -> mark# X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U21(X1, X2) -> mark# X1)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# isNat X -> active# isNat X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U22 X -> U22# mark X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U22 X -> active# U22 mark X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U22 X -> mark# X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# tt() -> active# tt())
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U11(X1, X2) -> mark# X1)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# isNatList X -> active# isNatList X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U12 X -> U12# mark X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U12 X -> active# U12 mark X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# U12 X -> mark# X)
     (mark# U41(X1, X2, X3) -> mark# X1, mark# zeros() -> active# zeros())
     (mark# U41(X1, X2, X3) -> mark# X1, mark# 0() -> active# 0())
     (mark# U41(X1, X2, X3) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# U41(X1, X2, X3) -> mark# X1, mark# cons(X1, X2) -> mark# X1)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# isNatKind X -> active# isNatKind X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# and(X1, X2) -> mark# X1)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> mark# X2)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> mark# X1)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U81 X -> U81# mark X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U81 X -> active# U81 mark X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U81 X -> mark# X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# nil() -> active# nil())
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U71(X1, X2) -> mark# X1)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# length X -> length# mark X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# length X -> active# length mark X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# length X -> mark# X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# s X -> s# mark X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# s X -> active# s mark X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# s X -> mark# X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U63 X -> U63# mark X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U63 X -> active# U63 mark X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U63 X -> mark# X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> mark# X1)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U53 X -> U53# mark X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U53 X -> active# U53 mark X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U53 X -> mark# X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> mark# X1)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# isNatIList X -> active# isNatIList X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U43 X -> U43# mark X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U43 X -> active# U43 mark X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U43 X -> mark# X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> mark# X1)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U31(X1, X2) -> mark# X1)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U32 X -> U32# mark X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U32 X -> active# U32 mark X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U32 X -> mark# X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U21(X1, X2) -> mark# X1)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# isNat X -> active# isNat X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U22 X -> U22# mark X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U22 X -> active# U22 mark X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U22 X -> mark# X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# tt() -> active# tt())
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U11(X1, X2) -> mark# X1)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# isNatList X -> active# isNatList X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U12 X -> U12# mark X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U12 X -> active# U12 mark X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# U12 X -> mark# X)
     (mark# U51(X1, X2, X3) -> mark# X1, mark# zeros() -> active# zeros())
     (mark# U51(X1, X2, X3) -> mark# X1, mark# 0() -> active# 0())
     (mark# U51(X1, X2, X3) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# U51(X1, X2, X3) -> mark# X1, mark# cons(X1, X2) -> mark# X1)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# isNatKind X -> active# isNatKind X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# and(X1, X2) -> mark# X1)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> mark# X2)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> mark# X1)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U81 X -> U81# mark X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U81 X -> active# U81 mark X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U81 X -> mark# X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# nil() -> active# nil())
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U71(X1, X2) -> mark# X1)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# length X -> length# mark X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# length X -> active# length mark X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# length X -> mark# X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# s X -> s# mark X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# s X -> active# s mark X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# s X -> mark# X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U63 X -> U63# mark X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U63 X -> active# U63 mark X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U63 X -> mark# X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> mark# X1)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U53 X -> U53# mark X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U53 X -> active# U53 mark X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U53 X -> mark# X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> mark# X1)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# isNatIList X -> active# isNatIList X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U43 X -> U43# mark X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U43 X -> active# U43 mark X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U43 X -> mark# X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> mark# X1)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U31(X1, X2) -> mark# X1)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U32 X -> U32# mark X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U32 X -> active# U32 mark X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U32 X -> mark# X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U21(X1, X2) -> mark# X1)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# isNat X -> active# isNat X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U22 X -> U22# mark X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U22 X -> active# U22 mark X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U22 X -> mark# X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# tt() -> active# tt())
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U11(X1, X2) -> mark# X1)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# isNatList X -> active# isNatList X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U12 X -> U12# mark X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U12 X -> active# U12 mark X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# U12 X -> mark# X)
     (mark# U61(X1, X2, X3) -> mark# X1, mark# zeros() -> active# zeros())
     (mark# U61(X1, X2, X3) -> mark# X1, mark# 0() -> active# 0())
     (mark# U61(X1, X2, X3) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# U61(X1, X2, X3) -> mark# X1, mark# cons(X1, X2) -> mark# X1)
     (mark# take(X1, X2) -> mark# X1, mark# isNatKind X -> active# isNatKind X)
     (mark# take(X1, X2) -> mark# X1, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# take(X1, X2) -> mark# X1, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# take(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# take(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1)
     (mark# take(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# take(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# take(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2)
     (mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1)
     (mark# take(X1, X2) -> mark# X1, mark# U81 X -> U81# mark X)
     (mark# take(X1, X2) -> mark# X1, mark# U81 X -> active# U81 mark X)
     (mark# take(X1, X2) -> mark# X1, mark# U81 X -> mark# X)
     (mark# take(X1, X2) -> mark# X1, mark# nil() -> active# nil())
     (mark# take(X1, X2) -> mark# X1, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# take(X1, X2) -> mark# X1, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# take(X1, X2) -> mark# X1, mark# U71(X1, X2) -> mark# X1)
     (mark# take(X1, X2) -> mark# X1, mark# length X -> length# mark X)
     (mark# take(X1, X2) -> mark# X1, mark# length X -> active# length mark X)
     (mark# take(X1, X2) -> mark# X1, mark# length X -> mark# X)
     (mark# take(X1, X2) -> mark# X1, mark# s X -> s# mark X)
     (mark# take(X1, X2) -> mark# X1, mark# s X -> active# s mark X)
     (mark# take(X1, X2) -> mark# X1, mark# s X -> mark# X)
     (mark# take(X1, X2) -> mark# X1, mark# U63 X -> U63# mark X)
     (mark# take(X1, X2) -> mark# X1, mark# U63 X -> active# U63 mark X)
     (mark# take(X1, X2) -> mark# X1, mark# U63 X -> mark# X)
     (mark# take(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# take(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# take(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# take(X1, X2) -> mark# X1, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# take(X1, X2) -> mark# X1, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# take(X1, X2) -> mark# X1, mark# U62(X1, X2) -> mark# X1)
     (mark# take(X1, X2) -> mark# X1, mark# U53 X -> U53# mark X)
     (mark# take(X1, X2) -> mark# X1, mark# U53 X -> active# U53 mark X)
     (mark# take(X1, X2) -> mark# X1, mark# U53 X -> mark# X)
     (mark# take(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# take(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# take(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# take(X1, X2) -> mark# X1, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# take(X1, X2) -> mark# X1, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# take(X1, X2) -> mark# X1, mark# U52(X1, X2) -> mark# X1)
     (mark# take(X1, X2) -> mark# X1, mark# isNatIList X -> active# isNatIList X)
     (mark# take(X1, X2) -> mark# X1, mark# U43 X -> U43# mark X)
     (mark# take(X1, X2) -> mark# X1, mark# U43 X -> active# U43 mark X)
     (mark# take(X1, X2) -> mark# X1, mark# U43 X -> mark# X)
     (mark# take(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# take(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# take(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# take(X1, X2) -> mark# X1, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# take(X1, X2) -> mark# X1, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# take(X1, X2) -> mark# X1, mark# U42(X1, X2) -> mark# X1)
     (mark# take(X1, X2) -> mark# X1, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# take(X1, X2) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# take(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1)
     (mark# take(X1, X2) -> mark# X1, mark# U32 X -> U32# mark X)
     (mark# take(X1, X2) -> mark# X1, mark# U32 X -> active# U32 mark X)
     (mark# take(X1, X2) -> mark# X1, mark# U32 X -> mark# X)
     (mark# take(X1, X2) -> mark# X1, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# take(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# take(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1)
     (mark# take(X1, X2) -> mark# X1, mark# isNat X -> active# isNat X)
     (mark# take(X1, X2) -> mark# X1, mark# U22 X -> U22# mark X)
     (mark# take(X1, X2) -> mark# X1, mark# U22 X -> active# U22 mark X)
     (mark# take(X1, X2) -> mark# X1, mark# U22 X -> mark# X)
     (mark# take(X1, X2) -> mark# X1, mark# tt() -> active# tt())
     (mark# take(X1, X2) -> mark# X1, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# take(X1, X2) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# take(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1)
     (mark# take(X1, X2) -> mark# X1, mark# isNatList X -> active# isNatList X)
     (mark# take(X1, X2) -> mark# X1, mark# U12 X -> U12# mark X)
     (mark# take(X1, X2) -> mark# X1, mark# U12 X -> active# U12 mark X)
     (mark# take(X1, X2) -> mark# X1, mark# U12 X -> mark# X)
     (mark# take(X1, X2) -> mark# X1, mark# zeros() -> active# zeros())
     (mark# take(X1, X2) -> mark# X1, mark# 0() -> active# 0())
     (mark# take(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# take(X1, X2) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# take(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1)
     (mark# and(X1, X2) -> mark# X1, mark# isNatKind X -> active# isNatKind X)
     (mark# and(X1, X2) -> mark# X1, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1)
     (mark# and(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# and(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# and(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# and(X1, X2) -> mark# X1, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# and(X1, X2) -> mark# X1, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# and(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2)
     (mark# and(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1)
     (mark# and(X1, X2) -> mark# X1, mark# U81 X -> U81# mark X)
     (mark# and(X1, X2) -> mark# X1, mark# U81 X -> active# U81 mark X)
     (mark# and(X1, X2) -> mark# X1, mark# U81 X -> mark# X)
     (mark# and(X1, X2) -> mark# X1, mark# nil() -> active# nil())
     (mark# and(X1, X2) -> mark# X1, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# and(X1, X2) -> mark# X1, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# and(X1, X2) -> mark# X1, mark# U71(X1, X2) -> mark# X1)
     (mark# and(X1, X2) -> mark# X1, mark# length X -> length# mark X)
     (mark# and(X1, X2) -> mark# X1, mark# length X -> active# length mark X)
     (mark# and(X1, X2) -> mark# X1, mark# length X -> mark# X)
     (mark# and(X1, X2) -> mark# X1, mark# s X -> s# mark X)
     (mark# and(X1, X2) -> mark# X1, mark# s X -> active# s mark X)
     (mark# and(X1, X2) -> mark# X1, mark# s X -> mark# X)
     (mark# and(X1, X2) -> mark# X1, mark# U63 X -> U63# mark X)
     (mark# and(X1, X2) -> mark# X1, mark# U63 X -> active# U63 mark X)
     (mark# and(X1, X2) -> mark# X1, mark# U63 X -> mark# X)
     (mark# and(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# and(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# and(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# and(X1, X2) -> mark# X1, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# and(X1, X2) -> mark# X1, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# and(X1, X2) -> mark# X1, mark# U62(X1, X2) -> mark# X1)
     (mark# and(X1, X2) -> mark# X1, mark# U53 X -> U53# mark X)
     (mark# and(X1, X2) -> mark# X1, mark# U53 X -> active# U53 mark X)
     (mark# and(X1, X2) -> mark# X1, mark# U53 X -> mark# X)
     (mark# and(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# and(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# and(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# and(X1, X2) -> mark# X1, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# and(X1, X2) -> mark# X1, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# and(X1, X2) -> mark# X1, mark# U52(X1, X2) -> mark# X1)
     (mark# and(X1, X2) -> mark# X1, mark# isNatIList X -> active# isNatIList X)
     (mark# and(X1, X2) -> mark# X1, mark# U43 X -> U43# mark X)
     (mark# and(X1, X2) -> mark# X1, mark# U43 X -> active# U43 mark X)
     (mark# and(X1, X2) -> mark# X1, mark# U43 X -> mark# X)
     (mark# and(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# and(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# and(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# and(X1, X2) -> mark# X1, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# and(X1, X2) -> mark# X1, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# and(X1, X2) -> mark# X1, mark# U42(X1, X2) -> mark# X1)
     (mark# and(X1, X2) -> mark# X1, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# and(X1, X2) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# and(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1)
     (mark# and(X1, X2) -> mark# X1, mark# U32 X -> U32# mark X)
     (mark# and(X1, X2) -> mark# X1, mark# U32 X -> active# U32 mark X)
     (mark# and(X1, X2) -> mark# X1, mark# U32 X -> mark# X)
     (mark# and(X1, X2) -> mark# X1, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# and(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# and(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1)
     (mark# and(X1, X2) -> mark# X1, mark# isNat X -> active# isNat X)
     (mark# and(X1, X2) -> mark# X1, mark# U22 X -> U22# mark X)
     (mark# and(X1, X2) -> mark# X1, mark# U22 X -> active# U22 mark X)
     (mark# and(X1, X2) -> mark# X1, mark# U22 X -> mark# X)
     (mark# and(X1, X2) -> mark# X1, mark# tt() -> active# tt())
     (mark# and(X1, X2) -> mark# X1, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# and(X1, X2) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# and(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1)
     (mark# and(X1, X2) -> mark# X1, mark# isNatList X -> active# isNatList X)
     (mark# and(X1, X2) -> mark# X1, mark# U12 X -> U12# mark X)
     (mark# and(X1, X2) -> mark# X1, mark# U12 X -> active# U12 mark X)
     (mark# and(X1, X2) -> mark# X1, mark# U12 X -> mark# X)
     (mark# and(X1, X2) -> mark# X1, mark# zeros() -> active# zeros())
     (mark# and(X1, X2) -> mark# X1, mark# 0() -> active# 0())
     (mark# and(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# and(X1, X2) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# and(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1)
     (active# length cons(N, L) -> isNatKind# N, isNatKind# active X -> isNatKind# X)
     (active# length cons(N, L) -> isNatKind# N, isNatKind# mark X -> isNatKind# X)
     (active# take(s M, cons(N, IL)) -> isNatKind# N, isNatKind# active X -> isNatKind# X)
     (active# take(s M, cons(N, IL)) -> isNatKind# N, isNatKind# mark X -> isNatKind# X)
     (active# isNatList cons(V1, V2) -> isNatKind# V1, isNatKind# active X -> isNatKind# X)
     (active# isNatList cons(V1, V2) -> isNatKind# V1, isNatKind# mark X -> isNatKind# X)
     (active# U11(tt(), V1) -> isNatList# V1, isNatList# active X -> isNatList# X)
     (active# U11(tt(), V1) -> isNatList# V1, isNatList# mark X -> isNatList# X)
     (active# isNat length V1 -> isNatIListKind# V1, isNatIListKind# active X -> isNatIListKind# X)
     (active# isNat length V1 -> isNatIListKind# V1, isNatIListKind# mark X -> isNatIListKind# X)
     (active# U41(tt(), V1, V2) -> isNat# V1, isNat# active X -> isNat# X)
     (active# U41(tt(), V1, V2) -> isNat# V1, isNat# mark X -> isNat# X)
     (active# U51(tt(), V1, V2) -> isNat# V1, isNat# active X -> isNat# X)
     (active# U51(tt(), V1, V2) -> isNat# V1, isNat# mark X -> isNat# X)
     (active# isNatIListKind cons(V1, V2) -> isNatKind# V1, isNatKind# active X -> isNatKind# X)
     (active# isNatIListKind cons(V1, V2) -> isNatKind# V1, isNatKind# mark X -> isNatKind# X)
     (active# isNatKind s V1 -> isNatKind# V1, isNatKind# active X -> isNatKind# X)
     (active# isNatKind s V1 -> isNatKind# V1, isNatKind# mark X -> isNatKind# X)
     (mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3), U41#(active X1, X2, X3) -> U41#(X1, X2, X3))
     (mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3))
     (mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3), U41#(X1, active X2, X3) -> U41#(X1, X2, X3))
     (mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3))
     (mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3))
     (mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3), U41#(X1, X2, mark X3) -> U41#(X1, X2, X3))
     (mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3), U61#(active X1, X2, X3) -> U61#(X1, X2, X3))
     (mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3), U61#(mark X1, X2, X3) -> U61#(X1, X2, X3))
     (mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3), U61#(X1, active X2, X3) -> U61#(X1, X2, X3))
     (mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3), U61#(X1, mark X2, X3) -> U61#(X1, X2, X3))
     (mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3), U61#(X1, X2, active X3) -> U61#(X1, X2, X3))
     (mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3), U61#(X1, X2, mark X3) -> U61#(X1, X2, X3))
     (U41#(X1, X2, active X3) -> U41#(X1, X2, X3), U41#(active X1, X2, X3) -> U41#(X1, X2, X3))
     (U41#(X1, X2, active X3) -> U41#(X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3))
     (U41#(X1, X2, active X3) -> U41#(X1, X2, X3), U41#(X1, active X2, X3) -> U41#(X1, X2, X3))
     (U41#(X1, X2, active X3) -> U41#(X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3))
     (U41#(X1, X2, active X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3))
     (U41#(X1, X2, active X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark X3) -> U41#(X1, X2, X3))
     (U41#(X1, active X2, X3) -> U41#(X1, X2, X3), U41#(active X1, X2, X3) -> U41#(X1, X2, X3))
     (U41#(X1, active X2, X3) -> U41#(X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3))
     (U41#(X1, active X2, X3) -> U41#(X1, X2, X3), U41#(X1, active X2, X3) -> U41#(X1, X2, X3))
     (U41#(X1, active X2, X3) -> U41#(X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3))
     (U41#(X1, active X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3))
     (U41#(X1, active X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark X3) -> U41#(X1, X2, X3))
     (U41#(active X1, X2, X3) -> U41#(X1, X2, X3), U41#(active X1, X2, X3) -> U41#(X1, X2, X3))
     (U41#(active X1, X2, X3) -> U41#(X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3))
     (U41#(active X1, X2, X3) -> U41#(X1, X2, X3), U41#(X1, active X2, X3) -> U41#(X1, X2, X3))
     (U41#(active X1, X2, X3) -> U41#(X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3))
     (U41#(active X1, X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3))
     (U41#(active X1, X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark X3) -> U41#(X1, X2, X3))
     (U51#(X1, X2, active X3) -> U51#(X1, X2, X3), U51#(active X1, X2, X3) -> U51#(X1, X2, X3))
     (U51#(X1, X2, active X3) -> U51#(X1, X2, X3), U51#(mark X1, X2, X3) -> U51#(X1, X2, X3))
     (U51#(X1, X2, active X3) -> U51#(X1, X2, X3), U51#(X1, active X2, X3) -> U51#(X1, X2, X3))
     (U51#(X1, X2, active X3) -> U51#(X1, X2, X3), U51#(X1, mark X2, X3) -> U51#(X1, X2, X3))
     (U51#(X1, X2, active X3) -> U51#(X1, X2, X3), U51#(X1, X2, active X3) -> U51#(X1, X2, X3))
     (U51#(X1, X2, active X3) -> U51#(X1, X2, X3), U51#(X1, X2, mark X3) -> U51#(X1, X2, X3))
     (U51#(X1, active X2, X3) -> U51#(X1, X2, X3), U51#(active X1, X2, X3) -> U51#(X1, X2, X3))
     (U51#(X1, active X2, X3) -> U51#(X1, X2, X3), U51#(mark X1, X2, X3) -> U51#(X1, X2, X3))
     (U51#(X1, active X2, X3) -> U51#(X1, X2, X3), U51#(X1, active X2, X3) -> U51#(X1, X2, X3))
     (U51#(X1, active X2, X3) -> U51#(X1, X2, X3), U51#(X1, mark X2, X3) -> U51#(X1, X2, X3))
     (U51#(X1, active X2, X3) -> U51#(X1, X2, X3), U51#(X1, X2, active X3) -> U51#(X1, X2, X3))
     (U51#(X1, active X2, X3) -> U51#(X1, X2, X3), U51#(X1, X2, mark X3) -> U51#(X1, X2, X3))
     (U51#(active X1, X2, X3) -> U51#(X1, X2, X3), U51#(active X1, X2, X3) -> U51#(X1, X2, X3))
     (U51#(active X1, X2, X3) -> U51#(X1, X2, X3), U51#(mark X1, X2, X3) -> U51#(X1, X2, X3))
     (U51#(active X1, X2, X3) -> U51#(X1, X2, X3), U51#(X1, active X2, X3) -> U51#(X1, X2, X3))
     (U51#(active X1, X2, X3) -> U51#(X1, X2, X3), U51#(X1, mark X2, X3) -> U51#(X1, X2, X3))
     (U51#(active X1, X2, X3) -> U51#(X1, X2, X3), U51#(X1, X2, active X3) -> U51#(X1, X2, X3))
     (U51#(active X1, X2, X3) -> U51#(X1, X2, X3), U51#(X1, X2, mark X3) -> U51#(X1, X2, X3))
     (U61#(X1, X2, active X3) -> U61#(X1, X2, X3), U61#(active X1, X2, X3) -> U61#(X1, X2, X3))
     (U61#(X1, X2, active X3) -> U61#(X1, X2, X3), U61#(mark X1, X2, X3) -> U61#(X1, X2, X3))
     (U61#(X1, X2, active X3) -> U61#(X1, X2, X3), U61#(X1, active X2, X3) -> U61#(X1, X2, X3))
     (U61#(X1, X2, active X3) -> U61#(X1, X2, X3), U61#(X1, mark X2, X3) -> U61#(X1, X2, X3))
     (U61#(X1, X2, active X3) -> U61#(X1, X2, X3), U61#(X1, X2, active X3) -> U61#(X1, X2, X3))
     (U61#(X1, X2, active X3) -> U61#(X1, X2, X3), U61#(X1, X2, mark X3) -> U61#(X1, X2, X3))
     (U61#(X1, active X2, X3) -> U61#(X1, X2, X3), U61#(active X1, X2, X3) -> U61#(X1, X2, X3))
     (U61#(X1, active X2, X3) -> U61#(X1, X2, X3), U61#(mark X1, X2, X3) -> U61#(X1, X2, X3))
     (U61#(X1, active X2, X3) -> U61#(X1, X2, X3), U61#(X1, active X2, X3) -> U61#(X1, X2, X3))
     (U61#(X1, active X2, X3) -> U61#(X1, X2, X3), U61#(X1, mark X2, X3) -> U61#(X1, X2, X3))
     (U61#(X1, active X2, X3) -> U61#(X1, X2, X3), U61#(X1, X2, active X3) -> U61#(X1, X2, X3))
     (U61#(X1, active X2, X3) -> U61#(X1, X2, X3), U61#(X1, X2, mark X3) -> U61#(X1, X2, X3))
     (U61#(active X1, X2, X3) -> U61#(X1, X2, X3), U61#(active X1, X2, X3) -> U61#(X1, X2, X3))
     (U61#(active X1, X2, X3) -> U61#(X1, X2, X3), U61#(mark X1, X2, X3) -> U61#(X1, X2, X3))
     (U61#(active X1, X2, X3) -> U61#(X1, X2, X3), U61#(X1, active X2, X3) -> U61#(X1, X2, X3))
     (U61#(active X1, X2, X3) -> U61#(X1, X2, X3), U61#(X1, mark X2, X3) -> U61#(X1, X2, X3))
     (U61#(active X1, X2, X3) -> U61#(X1, X2, X3), U61#(X1, X2, active X3) -> U61#(X1, X2, X3))
     (U61#(active X1, X2, X3) -> U61#(X1, X2, X3), U61#(X1, X2, mark X3) -> U61#(X1, X2, X3))
     (mark# U11(X1, X2) -> U11#(mark X1, X2), U11#(active X1, X2) -> U11#(X1, X2))
     (mark# U11(X1, X2) -> U11#(mark X1, X2), U11#(mark X1, X2) -> U11#(X1, X2))
     (mark# U11(X1, X2) -> U11#(mark X1, X2), U11#(X1, active X2) -> U11#(X1, X2))
     (mark# U11(X1, X2) -> U11#(mark X1, X2), U11#(X1, mark X2) -> U11#(X1, X2))
     (mark# U31(X1, X2) -> U31#(mark X1, X2), U31#(active X1, X2) -> U31#(X1, X2))
     (mark# U31(X1, X2) -> U31#(mark X1, X2), U31#(mark X1, X2) -> U31#(X1, X2))
     (mark# U31(X1, X2) -> U31#(mark X1, X2), U31#(X1, active X2) -> U31#(X1, X2))
     (mark# U31(X1, X2) -> U31#(mark X1, X2), U31#(X1, mark X2) -> U31#(X1, X2))
     (mark# U52(X1, X2) -> U52#(mark X1, X2), U52#(active X1, X2) -> U52#(X1, X2))
     (mark# U52(X1, X2) -> U52#(mark X1, X2), U52#(mark X1, X2) -> U52#(X1, X2))
     (mark# U52(X1, X2) -> U52#(mark X1, X2), U52#(X1, active X2) -> U52#(X1, X2))
     (mark# U52(X1, X2) -> U52#(mark X1, X2), U52#(X1, mark X2) -> U52#(X1, X2))
     (mark# U71(X1, X2) -> U71#(mark X1, X2), U71#(active X1, X2) -> U71#(X1, X2))
     (mark# U71(X1, X2) -> U71#(mark X1, X2), U71#(mark X1, X2) -> U71#(X1, X2))
     (mark# U71(X1, X2) -> U71#(mark X1, X2), U71#(X1, active X2) -> U71#(X1, X2))
     (mark# U71(X1, X2) -> U71#(mark X1, X2), U71#(X1, mark X2) -> U71#(X1, X2))
     (mark# U12 X -> U12# mark X, U12# active X -> U12# X)
     (mark# U12 X -> U12# mark X, U12# mark X -> U12# X)
     (mark# U22 X -> U22# mark X, U22# active X -> U22# X)
     (mark# U22 X -> U22# mark X, U22# mark X -> U22# X)
     (mark# U32 X -> U32# mark X, U32# active X -> U32# X)
     (mark# U32 X -> U32# mark X, U32# mark X -> U32# X)
     (mark# isNatIList X -> active# isNatIList X, active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# isNatIList X -> active# isNatIList X, active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# isNatIList X -> active# isNatIList X, active# isNatKind s V1 -> isNatKind# V1)
     (mark# isNatIList X -> active# isNatIList X, active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# isNatIList X -> active# isNatIList X, active# isNatKind 0() -> mark# tt())
     (mark# isNatIList X -> active# isNatIList X, active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# isNatIList X -> active# isNatIList X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# isNatIList X -> active# isNatIList X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNatIList X -> active# isNatIList X, active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# isNatIList X -> active# isNatIList X, active# isNatIListKind nil() -> mark# tt())
     (mark# isNatIList X -> active# isNatIList X, active# isNatIListKind zeros() -> mark# tt())
     (mark# isNatIList X -> active# isNatIList X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# isNatIList X -> active# isNatIList X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# isNatIList X -> active# isNatIList X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNatIList X -> active# isNatIList X, active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# isNatIList X -> active# isNatIList X, active# and(tt(), X) -> mark# X)
     (mark# isNatIList X -> active# isNatIList X, active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# isNatIList X -> active# isNatIList X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# isNatIList X -> active# isNatIList X, active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# isNatIList X -> active# isNatIList X, active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# isNatIList X -> active# isNatIList X, active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# isNatIList X -> active# isNatIList X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# isNatIList X -> active# isNatIList X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# isNatIList X -> active# isNatIList X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# isNatIList X -> active# isNatIList X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# isNatIList X -> active# isNatIList X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# isNatIList X -> active# isNatIList X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# isNatIList X -> active# isNatIList X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# isNatIList X -> active# isNatIList X, active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# isNatIList X -> active# isNatIList X, active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# isNatIList X -> active# isNatIList X, active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# isNatIList X -> active# isNatIList X, active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# isNatIList X -> active# isNatIList X, active# take(0(), IL) -> isNatIListKind# IL)
     (mark# isNatIList X -> active# isNatIList X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# isNatIList X -> active# isNatIList X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# isNatIList X -> active# isNatIList X, active# take(0(), IL) -> isNatIList# IL)
     (mark# isNatIList X -> active# isNatIList X, active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# isNatIList X -> active# isNatIList X, active# U81 tt() -> mark# nil())
     (mark# isNatIList X -> active# isNatIList X, active# U71(tt(), L) -> length# L)
     (mark# isNatIList X -> active# isNatIList X, active# U71(tt(), L) -> s# length L)
     (mark# isNatIList X -> active# isNatIList X, active# U71(tt(), L) -> mark# s length L)
     (mark# isNatIList X -> active# isNatIList X, active# length nil() -> mark# 0())
     (mark# isNatIList X -> active# isNatIList X, active# length cons(N, L) -> isNatKind# N)
     (mark# isNatIList X -> active# isNatIList X, active# length cons(N, L) -> isNatIListKind# L)
     (mark# isNatIList X -> active# isNatIList X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# isNatIList X -> active# isNatIList X, active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# isNatIList X -> active# isNatIList X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# isNatIList X -> active# isNatIList X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# isNatIList X -> active# isNatIList X, active# length cons(N, L) -> isNat# N)
     (mark# isNatIList X -> active# isNatIList X, active# length cons(N, L) -> isNatList# L)
     (mark# isNatIList X -> active# isNatIList X, active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# isNatIList X -> active# isNatIList X, active# U63 tt() -> mark# tt())
     (mark# isNatIList X -> active# isNatIList X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# isNatIList X -> active# isNatIList X, active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# isNatIList X -> active# isNatIList X, active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# isNatIList X -> active# isNatIList X, active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# isNatIList X -> active# isNatIList X, active# U62(tt(), V2) -> isNatIList# V2)
     (mark# isNatIList X -> active# isNatIList X, active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# isNatIList X -> active# isNatIList X, active# U53 tt() -> mark# tt())
     (mark# isNatIList X -> active# isNatIList X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# isNatIList X -> active# isNatIList X, active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# isNatIList X -> active# isNatIList X, active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# isNatIList X -> active# isNatIList X, active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# isNatIList X -> active# isNatIList X, active# U52(tt(), V2) -> isNatList# V2)
     (mark# isNatIList X -> active# isNatIList X, active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# isNatIList X -> active# isNatIList X, active# isNatIList zeros() -> mark# tt())
     (mark# isNatIList X -> active# isNatIList X, active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# isNatIList X -> active# isNatIList X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# isNatIList X -> active# isNatIList X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNatIList X -> active# isNatIList X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatIList X -> active# isNatIList X, active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatIList X -> active# isNatIList X, active# isNatIList V -> isNatIListKind# V)
     (mark# isNatIList X -> active# isNatIList X, active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# isNatIList X -> active# isNatIList X, active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# isNatIList X -> active# isNatIList X, active# U43 tt() -> mark# tt())
     (mark# isNatIList X -> active# isNatIList X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# isNatIList X -> active# isNatIList X, active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# isNatIList X -> active# isNatIList X, active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# isNatIList X -> active# isNatIList X, active# U42(tt(), V2) -> isNatIList# V2)
     (mark# isNatIList X -> active# isNatIList X, active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# isNatIList X -> active# isNatIList X, active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# isNatIList X -> active# isNatIList X, active# U31(tt(), V) -> U32# isNatList V)
     (mark# isNatIList X -> active# isNatIList X, active# U31(tt(), V) -> isNatList# V)
     (mark# isNatIList X -> active# isNatIList X, active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# isNatIList X -> active# isNatIList X, active# U32 tt() -> mark# tt())
     (mark# isNatIList X -> active# isNatIList X, active# U21(tt(), V1) -> isNat# V1)
     (mark# isNatIList X -> active# isNatIList X, active# U21(tt(), V1) -> U22# isNat V1)
     (mark# isNatIList X -> active# isNatIList X, active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# isNatIList X -> active# isNatIList X, active# isNat length V1 -> isNatIListKind# V1)
     (mark# isNatIList X -> active# isNatIList X, active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# isNatIList X -> active# isNatIList X, active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# isNatIList X -> active# isNatIList X, active# isNat s V1 -> isNatKind# V1)
     (mark# isNatIList X -> active# isNatIList X, active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# isNatIList X -> active# isNatIList X, active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# isNatIList X -> active# isNatIList X, active# isNat 0() -> mark# tt())
     (mark# isNatIList X -> active# isNatIList X, active# U22 tt() -> mark# tt())
     (mark# isNatIList X -> active# isNatIList X, active# U11(tt(), V1) -> isNatList# V1)
     (mark# isNatIList X -> active# isNatIList X, active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# isNatIList X -> active# isNatIList X, active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# isNatIList X -> active# isNatIList X, active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# isNatIList X -> active# isNatIList X, active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# isNatIList X -> active# isNatIList X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNatIList X -> active# isNatIList X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatIList X -> active# isNatIList X, active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatIList X -> active# isNatIList X, active# isNatList nil() -> mark# tt())
     (mark# isNatIList X -> active# isNatIList X, active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# isNatIList X -> active# isNatIList X, active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# isNatIList X -> active# isNatIList X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNatIList X -> active# isNatIList X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatIList X -> active# isNatIList X, active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatIList X -> active# isNatIList X, active# U12 tt() -> mark# tt())
     (mark# isNatIList X -> active# isNatIList X, active# zeros() -> cons#(0(), zeros()))
     (mark# isNatIList X -> active# isNatIList X, active# zeros() -> mark# cons(0(), zeros()))
     (mark# U63 X -> U63# mark X, U63# active X -> U63# X)
     (mark# U63 X -> U63# mark X, U63# mark X -> U63# X)
     (mark# length X -> length# mark X, length# active X -> length# X)
     (mark# length X -> length# mark X, length# mark X -> length# X)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatKind s V1 -> isNatKind# V1)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatKind 0() -> mark# tt())
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatIListKind nil() -> mark# tt())
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatIListKind zeros() -> mark# tt())
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# and(tt(), X) -> mark# X)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# take(0(), IL) -> isNatIListKind# IL)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# take(0(), IL) -> isNatIList# IL)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U81 tt() -> mark# nil())
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U71(tt(), L) -> length# L)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U71(tt(), L) -> s# length L)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U71(tt(), L) -> mark# s length L)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# length nil() -> mark# 0())
     (mark# isNatIListKind X -> active# isNatIListKind X, active# length cons(N, L) -> isNatKind# N)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# length cons(N, L) -> isNatIListKind# L)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# length cons(N, L) -> isNat# N)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# length cons(N, L) -> isNatList# L)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U63 tt() -> mark# tt())
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U62(tt(), V2) -> isNatIList# V2)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U53 tt() -> mark# tt())
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U52(tt(), V2) -> isNatList# V2)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatIList zeros() -> mark# tt())
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatIList V -> isNatIListKind# V)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U43 tt() -> mark# tt())
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U42(tt(), V2) -> isNatIList# V2)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U31(tt(), V) -> U32# isNatList V)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U31(tt(), V) -> isNatList# V)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U32 tt() -> mark# tt())
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U21(tt(), V1) -> isNat# V1)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U21(tt(), V1) -> U22# isNat V1)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNat length V1 -> isNatIListKind# V1)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNat s V1 -> isNatKind# V1)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNat 0() -> mark# tt())
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U22 tt() -> mark# tt())
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U11(tt(), V1) -> isNatList# V1)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatList nil() -> mark# tt())
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# U12 tt() -> mark# tt())
     (mark# isNatIListKind X -> active# isNatIListKind X, active# zeros() -> cons#(0(), zeros()))
     (mark# isNatIListKind X -> active# isNatIListKind X, active# zeros() -> mark# cons(0(), zeros()))
     (active# U71(tt(), L) -> s# length L, s# active X -> s# X)
     (active# U71(tt(), L) -> s# length L, s# mark X -> s# X)
     (active# U52(tt(), V2) -> U53# isNatList V2, U53# active X -> U53# X)
     (active# U52(tt(), V2) -> U53# isNatList V2, U53# mark X -> U53# X)
     (active# U31(tt(), V) -> U32# isNatList V, U32# active X -> U32# X)
     (active# U31(tt(), V) -> U32# isNatList V, U32# mark X -> U32# X)
     (cons#(X1, active X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2))
     (cons#(X1, active X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2))
     (cons#(X1, active X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2))
     (cons#(X1, active X2) -> cons#(X1, X2), cons#(X1, mark X2) -> cons#(X1, X2))
     (cons#(active X1, X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2))
     (cons#(active X1, X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2))
     (cons#(active X1, X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2))
     (cons#(active X1, X2) -> cons#(X1, X2), cons#(X1, mark X2) -> cons#(X1, X2))
     (active# U21(tt(), V1) -> U22# isNat V1, U22# active X -> U22# X)
     (active# U21(tt(), V1) -> U22# isNat V1, U22# mark X -> U22# X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# isNatKind X -> active# isNatKind X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# isNatIListKind X -> active# isNatIListKind X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# and(X1, X2) -> and#(mark X1, X2))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# and(X1, X2) -> mark# X1)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# take(X1, X2) -> mark# X2)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# take(X1, X2) -> mark# X1)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U81 X -> U81# mark X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U81 X -> active# U81 mark X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U81 X -> mark# X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# nil() -> active# nil())
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U71(X1, X2) -> mark# X1)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# length X -> length# mark X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# length X -> active# length mark X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# length X -> mark# X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# s X -> s# mark X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# s X -> active# s mark X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# s X -> mark# X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U63 X -> U63# mark X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U63 X -> active# U63 mark X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U63 X -> mark# X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U61(X1, X2, X3) -> mark# X1)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U62(X1, X2) -> mark# X1)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U53 X -> U53# mark X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U53 X -> active# U53 mark X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U53 X -> mark# X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U51(X1, X2, X3) -> mark# X1)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U52(X1, X2) -> mark# X1)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# isNatIList X -> active# isNatIList X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U43 X -> U43# mark X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U43 X -> active# U43 mark X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U43 X -> mark# X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U41(X1, X2, X3) -> mark# X1)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U42(X1, X2) -> mark# X1)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U31(X1, X2) -> mark# X1)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U32 X -> U32# mark X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U32 X -> active# U32 mark X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U32 X -> mark# X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U21(X1, X2) -> mark# X1)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# isNat X -> active# isNat X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U22 X -> U22# mark X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U22 X -> active# U22 mark X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U22 X -> mark# X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# tt() -> active# tt())
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U11(X1, X2) -> mark# X1)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# isNatList X -> active# isNatList X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U12 X -> U12# mark X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U12 X -> active# U12 mark X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# U12 X -> mark# X)
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# zeros() -> active# zeros())
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# 0() -> active# 0())
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# isNatKind length V1 -> mark# isNatIListKind V1, mark# cons(X1, X2) -> mark# X1)
     (U11#(X1, active X2) -> U11#(X1, X2), U11#(active X1, X2) -> U11#(X1, X2))
     (U11#(X1, active X2) -> U11#(X1, X2), U11#(mark X1, X2) -> U11#(X1, X2))
     (U11#(X1, active X2) -> U11#(X1, X2), U11#(X1, active X2) -> U11#(X1, X2))
     (U11#(X1, active X2) -> U11#(X1, X2), U11#(X1, mark X2) -> U11#(X1, X2))
     (U11#(active X1, X2) -> U11#(X1, X2), U11#(active X1, X2) -> U11#(X1, X2))
     (U11#(active X1, X2) -> U11#(X1, X2), U11#(mark X1, X2) -> U11#(X1, X2))
     (U11#(active X1, X2) -> U11#(X1, X2), U11#(X1, active X2) -> U11#(X1, X2))
     (U11#(active X1, X2) -> U11#(X1, X2), U11#(X1, mark X2) -> U11#(X1, X2))
     (U21#(X1, active X2) -> U21#(X1, X2), U21#(active X1, X2) -> U21#(X1, X2))
     (U21#(X1, active X2) -> U21#(X1, X2), U21#(mark X1, X2) -> U21#(X1, X2))
     (U21#(X1, active X2) -> U21#(X1, X2), U21#(X1, active X2) -> U21#(X1, X2))
     (U21#(X1, active X2) -> U21#(X1, X2), U21#(X1, mark X2) -> U21#(X1, X2))
     (U21#(active X1, X2) -> U21#(X1, X2), U21#(active X1, X2) -> U21#(X1, X2))
     (U21#(active X1, X2) -> U21#(X1, X2), U21#(mark X1, X2) -> U21#(X1, X2))
     (U21#(active X1, X2) -> U21#(X1, X2), U21#(X1, active X2) -> U21#(X1, X2))
     (U21#(active X1, X2) -> U21#(X1, X2), U21#(X1, mark X2) -> U21#(X1, X2))
     (U31#(X1, active X2) -> U31#(X1, X2), U31#(active X1, X2) -> U31#(X1, X2))
     (U31#(X1, active X2) -> U31#(X1, X2), U31#(mark X1, X2) -> U31#(X1, X2))
     (U31#(X1, active X2) -> U31#(X1, X2), U31#(X1, active X2) -> U31#(X1, X2))
     (U31#(X1, active X2) -> U31#(X1, X2), U31#(X1, mark X2) -> U31#(X1, X2))
     (U31#(active X1, X2) -> U31#(X1, X2), U31#(active X1, X2) -> U31#(X1, X2))
     (U31#(active X1, X2) -> U31#(X1, X2), U31#(mark X1, X2) -> U31#(X1, X2))
     (U31#(active X1, X2) -> U31#(X1, X2), U31#(X1, active X2) -> U31#(X1, X2))
     (U31#(active X1, X2) -> U31#(X1, X2), U31#(X1, mark X2) -> U31#(X1, X2))
     (U42#(X1, active X2) -> U42#(X1, X2), U42#(active X1, X2) -> U42#(X1, X2))
     (U42#(X1, active X2) -> U42#(X1, X2), U42#(mark X1, X2) -> U42#(X1, X2))
     (U42#(X1, active X2) -> U42#(X1, X2), U42#(X1, active X2) -> U42#(X1, X2))
     (U42#(X1, active X2) -> U42#(X1, X2), U42#(X1, mark X2) -> U42#(X1, X2))
     (U42#(active X1, X2) -> U42#(X1, X2), U42#(active X1, X2) -> U42#(X1, X2))
     (U42#(active X1, X2) -> U42#(X1, X2), U42#(mark X1, X2) -> U42#(X1, X2))
     (U42#(active X1, X2) -> U42#(X1, X2), U42#(X1, active X2) -> U42#(X1, X2))
     (U42#(active X1, X2) -> U42#(X1, X2), U42#(X1, mark X2) -> U42#(X1, X2))
     (U52#(X1, active X2) -> U52#(X1, X2), U52#(active X1, X2) -> U52#(X1, X2))
     (U52#(X1, active X2) -> U52#(X1, X2), U52#(mark X1, X2) -> U52#(X1, X2))
     (U52#(X1, active X2) -> U52#(X1, X2), U52#(X1, active X2) -> U52#(X1, X2))
     (U52#(X1, active X2) -> U52#(X1, X2), U52#(X1, mark X2) -> U52#(X1, X2))
     (U52#(active X1, X2) -> U52#(X1, X2), U52#(active X1, X2) -> U52#(X1, X2))
     (U52#(active X1, X2) -> U52#(X1, X2), U52#(mark X1, X2) -> U52#(X1, X2))
     (U52#(active X1, X2) -> U52#(X1, X2), U52#(X1, active X2) -> U52#(X1, X2))
     (U52#(active X1, X2) -> U52#(X1, X2), U52#(X1, mark X2) -> U52#(X1, X2))
     (U62#(X1, active X2) -> U62#(X1, X2), U62#(active X1, X2) -> U62#(X1, X2))
     (U62#(X1, active X2) -> U62#(X1, X2), U62#(mark X1, X2) -> U62#(X1, X2))
     (U62#(X1, active X2) -> U62#(X1, X2), U62#(X1, active X2) -> U62#(X1, X2))
     (U62#(X1, active X2) -> U62#(X1, X2), U62#(X1, mark X2) -> U62#(X1, X2))
     (U62#(active X1, X2) -> U62#(X1, X2), U62#(active X1, X2) -> U62#(X1, X2))
     (U62#(active X1, X2) -> U62#(X1, X2), U62#(mark X1, X2) -> U62#(X1, X2))
     (U62#(active X1, X2) -> U62#(X1, X2), U62#(X1, active X2) -> U62#(X1, X2))
     (U62#(active X1, X2) -> U62#(X1, X2), U62#(X1, mark X2) -> U62#(X1, X2))
     (U71#(X1, active X2) -> U71#(X1, X2), U71#(active X1, X2) -> U71#(X1, X2))
     (U71#(X1, active X2) -> U71#(X1, X2), U71#(mark X1, X2) -> U71#(X1, X2))
     (U71#(X1, active X2) -> U71#(X1, X2), U71#(X1, active X2) -> U71#(X1, X2))
     (U71#(X1, active X2) -> U71#(X1, X2), U71#(X1, mark X2) -> U71#(X1, X2))
     (U71#(active X1, X2) -> U71#(X1, X2), U71#(active X1, X2) -> U71#(X1, X2))
     (U71#(active X1, X2) -> U71#(X1, X2), U71#(mark X1, X2) -> U71#(X1, X2))
     (U71#(active X1, X2) -> U71#(X1, X2), U71#(X1, active X2) -> U71#(X1, X2))
     (U71#(active X1, X2) -> U71#(X1, X2), U71#(X1, mark X2) -> U71#(X1, X2))
     (take#(X1, active X2) -> take#(X1, X2), take#(active X1, X2) -> take#(X1, X2))
     (take#(X1, active X2) -> take#(X1, X2), take#(mark X1, X2) -> take#(X1, X2))
     (take#(X1, active X2) -> take#(X1, X2), take#(X1, active X2) -> take#(X1, X2))
     (take#(X1, active X2) -> take#(X1, X2), take#(X1, mark X2) -> take#(X1, X2))
     (take#(active X1, X2) -> take#(X1, X2), take#(active X1, X2) -> take#(X1, X2))
     (take#(active X1, X2) -> take#(X1, X2), take#(mark X1, X2) -> take#(X1, X2))
     (take#(active X1, X2) -> take#(X1, X2), take#(X1, active X2) -> take#(X1, X2))
     (take#(active X1, X2) -> take#(X1, X2), take#(X1, mark X2) -> take#(X1, X2))
     (and#(X1, active X2) -> and#(X1, X2), and#(active X1, X2) -> and#(X1, X2))
     (and#(X1, active X2) -> and#(X1, X2), and#(mark X1, X2) -> and#(X1, X2))
     (and#(X1, active X2) -> and#(X1, X2), and#(X1, active X2) -> and#(X1, X2))
     (and#(X1, active X2) -> and#(X1, X2), and#(X1, mark X2) -> and#(X1, X2))
     (and#(active X1, X2) -> and#(X1, X2), and#(active X1, X2) -> and#(X1, X2))
     (and#(active X1, X2) -> and#(X1, X2), and#(mark X1, X2) -> and#(X1, X2))
     (and#(active X1, X2) -> and#(X1, X2), and#(X1, active X2) -> and#(X1, X2))
     (and#(active X1, X2) -> and#(X1, X2), and#(X1, mark X2) -> and#(X1, X2))
     (and#(mark X1, X2) -> and#(X1, X2), and#(X1, mark X2) -> and#(X1, X2))
     (and#(mark X1, X2) -> and#(X1, X2), and#(X1, active X2) -> and#(X1, X2))
     (and#(mark X1, X2) -> and#(X1, X2), and#(mark X1, X2) -> and#(X1, X2))
     (and#(mark X1, X2) -> and#(X1, X2), and#(active X1, X2) -> and#(X1, X2))
     (and#(X1, mark X2) -> and#(X1, X2), and#(X1, mark X2) -> and#(X1, X2))
     (and#(X1, mark X2) -> and#(X1, X2), and#(X1, active X2) -> and#(X1, X2))
     (and#(X1, mark X2) -> and#(X1, X2), and#(mark X1, X2) -> and#(X1, X2))
     (and#(X1, mark X2) -> and#(X1, X2), and#(active X1, X2) -> and#(X1, X2))
     (take#(mark X1, X2) -> take#(X1, X2), take#(X1, mark X2) -> take#(X1, X2))
     (take#(mark X1, X2) -> take#(X1, X2), take#(X1, active X2) -> take#(X1, X2))
     (take#(mark X1, X2) -> take#(X1, X2), take#(mark X1, X2) -> take#(X1, X2))
     (take#(mark X1, X2) -> take#(X1, X2), take#(active X1, X2) -> take#(X1, X2))
     (take#(X1, mark X2) -> take#(X1, X2), take#(X1, mark X2) -> take#(X1, X2))
     (take#(X1, mark X2) -> take#(X1, X2), take#(X1, active X2) -> take#(X1, X2))
     (take#(X1, mark X2) -> take#(X1, X2), take#(mark X1, X2) -> take#(X1, X2))
     (take#(X1, mark X2) -> take#(X1, X2), take#(active X1, X2) -> take#(X1, X2))
     (U71#(mark X1, X2) -> U71#(X1, X2), U71#(X1, mark X2) -> U71#(X1, X2))
     (U71#(mark X1, X2) -> U71#(X1, X2), U71#(X1, active X2) -> U71#(X1, X2))
     (U71#(mark X1, X2) -> U71#(X1, X2), U71#(mark X1, X2) -> U71#(X1, X2))
     (U71#(mark X1, X2) -> U71#(X1, X2), U71#(active X1, X2) -> U71#(X1, X2))
     (U71#(X1, mark X2) -> U71#(X1, X2), U71#(X1, mark X2) -> U71#(X1, X2))
     (U71#(X1, mark X2) -> U71#(X1, X2), U71#(X1, active X2) -> U71#(X1, X2))
     (U71#(X1, mark X2) -> U71#(X1, X2), U71#(mark X1, X2) -> U71#(X1, X2))
     (U71#(X1, mark X2) -> U71#(X1, X2), U71#(active X1, X2) -> U71#(X1, X2))
     (U62#(mark X1, X2) -> U62#(X1, X2), U62#(X1, mark X2) -> U62#(X1, X2))
     (U62#(mark X1, X2) -> U62#(X1, X2), U62#(X1, active X2) -> U62#(X1, X2))
     (U62#(mark X1, X2) -> U62#(X1, X2), U62#(mark X1, X2) -> U62#(X1, X2))
     (U62#(mark X1, X2) -> U62#(X1, X2), U62#(active X1, X2) -> U62#(X1, X2))
     (U62#(X1, mark X2) -> U62#(X1, X2), U62#(X1, mark X2) -> U62#(X1, X2))
     (U62#(X1, mark X2) -> U62#(X1, X2), U62#(X1, active X2) -> U62#(X1, X2))
     (U62#(X1, mark X2) -> U62#(X1, X2), U62#(mark X1, X2) -> U62#(X1, X2))
     (U62#(X1, mark X2) -> U62#(X1, X2), U62#(active X1, X2) -> U62#(X1, X2))
     (U52#(mark X1, X2) -> U52#(X1, X2), U52#(X1, mark X2) -> U52#(X1, X2))
     (U52#(mark X1, X2) -> U52#(X1, X2), U52#(X1, active X2) -> U52#(X1, X2))
     (U52#(mark X1, X2) -> U52#(X1, X2), U52#(mark X1, X2) -> U52#(X1, X2))
     (U52#(mark X1, X2) -> U52#(X1, X2), U52#(active X1, X2) -> U52#(X1, X2))
     (U52#(X1, mark X2) -> U52#(X1, X2), U52#(X1, mark X2) -> U52#(X1, X2))
     (U52#(X1, mark X2) -> U52#(X1, X2), U52#(X1, active X2) -> U52#(X1, X2))
     (U52#(X1, mark X2) -> U52#(X1, X2), U52#(mark X1, X2) -> U52#(X1, X2))
     (U52#(X1, mark X2) -> U52#(X1, X2), U52#(active X1, X2) -> U52#(X1, X2))
     (U42#(mark X1, X2) -> U42#(X1, X2), U42#(X1, mark X2) -> U42#(X1, X2))
     (U42#(mark X1, X2) -> U42#(X1, X2), U42#(X1, active X2) -> U42#(X1, X2))
     (U42#(mark X1, X2) -> U42#(X1, X2), U42#(mark X1, X2) -> U42#(X1, X2))
     (U42#(mark X1, X2) -> U42#(X1, X2), U42#(active X1, X2) -> U42#(X1, X2))
     (U42#(X1, mark X2) -> U42#(X1, X2), U42#(X1, mark X2) -> U42#(X1, X2))
     (U42#(X1, mark X2) -> U42#(X1, X2), U42#(X1, active X2) -> U42#(X1, X2))
     (U42#(X1, mark X2) -> U42#(X1, X2), U42#(mark X1, X2) -> U42#(X1, X2))
     (U42#(X1, mark X2) -> U42#(X1, X2), U42#(active X1, X2) -> U42#(X1, X2))
     (U31#(mark X1, X2) -> U31#(X1, X2), U31#(X1, mark X2) -> U31#(X1, X2))
     (U31#(mark X1, X2) -> U31#(X1, X2), U31#(X1, active X2) -> U31#(X1, X2))
     (U31#(mark X1, X2) -> U31#(X1, X2), U31#(mark X1, X2) -> U31#(X1, X2))
     (U31#(mark X1, X2) -> U31#(X1, X2), U31#(active X1, X2) -> U31#(X1, X2))
     (U31#(X1, mark X2) -> U31#(X1, X2), U31#(X1, mark X2) -> U31#(X1, X2))
     (U31#(X1, mark X2) -> U31#(X1, X2), U31#(X1, active X2) -> U31#(X1, X2))
     (U31#(X1, mark X2) -> U31#(X1, X2), U31#(mark X1, X2) -> U31#(X1, X2))
     (U31#(X1, mark X2) -> U31#(X1, X2), U31#(active X1, X2) -> U31#(X1, X2))
     (U21#(mark X1, X2) -> U21#(X1, X2), U21#(X1, mark X2) -> U21#(X1, X2))
     (U21#(mark X1, X2) -> U21#(X1, X2), U21#(X1, active X2) -> U21#(X1, X2))
     (U21#(mark X1, X2) -> U21#(X1, X2), U21#(mark X1, X2) -> U21#(X1, X2))
     (U21#(mark X1, X2) -> U21#(X1, X2), U21#(active X1, X2) -> U21#(X1, X2))
     (U21#(X1, mark X2) -> U21#(X1, X2), U21#(X1, mark X2) -> U21#(X1, X2))
     (U21#(X1, mark X2) -> U21#(X1, X2), U21#(X1, active X2) -> U21#(X1, X2))
     (U21#(X1, mark X2) -> U21#(X1, X2), U21#(mark X1, X2) -> U21#(X1, X2))
     (U21#(X1, mark X2) -> U21#(X1, X2), U21#(active X1, X2) -> U21#(X1, X2))
     (U11#(mark X1, X2) -> U11#(X1, X2), U11#(X1, mark X2) -> U11#(X1, X2))
     (U11#(mark X1, X2) -> U11#(X1, X2), U11#(X1, active X2) -> U11#(X1, X2))
     (U11#(mark X1, X2) -> U11#(X1, X2), U11#(mark X1, X2) -> U11#(X1, X2))
     (U11#(mark X1, X2) -> U11#(X1, X2), U11#(active X1, X2) -> U11#(X1, X2))
     (U11#(X1, mark X2) -> U11#(X1, X2), U11#(X1, mark X2) -> U11#(X1, X2))
     (U11#(X1, mark X2) -> U11#(X1, X2), U11#(X1, active X2) -> U11#(X1, X2))
     (U11#(X1, mark X2) -> U11#(X1, X2), U11#(mark X1, X2) -> U11#(X1, X2))
     (U11#(X1, mark X2) -> U11#(X1, X2), U11#(active X1, X2) -> U11#(X1, X2))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# cons(X1, X2) -> mark# X1)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# 0() -> active# 0())
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# zeros() -> active# zeros())
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U12 X -> mark# X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U12 X -> active# U12 mark X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U12 X -> U12# mark X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# isNatList X -> active# isNatList X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U11(X1, X2) -> mark# X1)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# tt() -> active# tt())
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U22 X -> mark# X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U22 X -> active# U22 mark X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U22 X -> U22# mark X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# isNat X -> active# isNat X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U21(X1, X2) -> mark# X1)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U32 X -> mark# X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U32 X -> active# U32 mark X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U32 X -> U32# mark X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U31(X1, X2) -> mark# X1)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U42(X1, X2) -> mark# X1)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U41(X1, X2, X3) -> mark# X1)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U43 X -> mark# X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U43 X -> active# U43 mark X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U43 X -> U43# mark X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# isNatIList X -> active# isNatIList X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U52(X1, X2) -> mark# X1)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U51(X1, X2, X3) -> mark# X1)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U53 X -> mark# X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U53 X -> active# U53 mark X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U53 X -> U53# mark X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U62(X1, X2) -> mark# X1)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U61(X1, X2, X3) -> mark# X1)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U63 X -> mark# X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U63 X -> active# U63 mark X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U63 X -> U63# mark X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# s X -> mark# X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# s X -> active# s mark X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# s X -> s# mark X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# length X -> mark# X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# length X -> active# length mark X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# length X -> length# mark X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U71(X1, X2) -> mark# X1)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# nil() -> active# nil())
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U81 X -> mark# X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U81 X -> active# U81 mark X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U81 X -> U81# mark X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# take(X1, X2) -> mark# X1)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# take(X1, X2) -> mark# X2)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# and(X1, X2) -> mark# X1)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# and(X1, X2) -> and#(mark X1, X2))
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# isNatIListKind X -> active# isNatIListKind X)
     (active# isNatKind s V1 -> mark# isNatKind V1, mark# isNatKind X -> active# isNatKind X)
     (active# U11(tt(), V1) -> U12# isNatList V1, U12# mark X -> U12# X)
     (active# U11(tt(), V1) -> U12# isNatList V1, U12# active X -> U12# X)
     (cons#(mark X1, X2) -> cons#(X1, X2), cons#(X1, mark X2) -> cons#(X1, X2))
     (cons#(mark X1, X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2))
     (cons#(mark X1, X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2))
     (cons#(mark X1, X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2))
     (cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, mark X2) -> cons#(X1, X2))
     (cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2))
     (cons#(X1, mark X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2))
     (cons#(X1, mark X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2))
     (active# U62(tt(), V2) -> U63# isNatIList V2, U63# mark X -> U63# X)
     (active# U62(tt(), V2) -> U63# isNatIList V2, U63# active X -> U63# X)
     (active# U42(tt(), V2) -> U43# isNatIList V2, U43# mark X -> U43# X)
     (active# U42(tt(), V2) -> U43# isNatIList V2, U43# active X -> U43# X)
     (mark# isNatKind X -> active# isNatKind X, active# zeros() -> mark# cons(0(), zeros()))
     (mark# isNatKind X -> active# isNatKind X, active# zeros() -> cons#(0(), zeros()))
     (mark# isNatKind X -> active# isNatKind X, active# U12 tt() -> mark# tt())
     (mark# isNatKind X -> active# isNatKind X, active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatKind X -> active# isNatKind X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatKind X -> active# isNatKind X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNatKind X -> active# isNatKind X, active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# isNatKind X -> active# isNatKind X, active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# isNatKind X -> active# isNatKind X, active# isNatList nil() -> mark# tt())
     (mark# isNatKind X -> active# isNatKind X, active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatKind X -> active# isNatKind X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatKind X -> active# isNatKind X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNatKind X -> active# isNatKind X, active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# isNatKind X -> active# isNatKind X, active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# isNatKind X -> active# isNatKind X, active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# isNatKind X -> active# isNatKind X, active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# isNatKind X -> active# isNatKind X, active# U11(tt(), V1) -> isNatList# V1)
     (mark# isNatKind X -> active# isNatKind X, active# U22 tt() -> mark# tt())
     (mark# isNatKind X -> active# isNatKind X, active# isNat 0() -> mark# tt())
     (mark# isNatKind X -> active# isNatKind X, active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# isNatKind X -> active# isNatKind X, active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# isNatKind X -> active# isNatKind X, active# isNat s V1 -> isNatKind# V1)
     (mark# isNatKind X -> active# isNatKind X, active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# isNatKind X -> active# isNatKind X, active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# isNatKind X -> active# isNatKind X, active# isNat length V1 -> isNatIListKind# V1)
     (mark# isNatKind X -> active# isNatKind X, active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# isNatKind X -> active# isNatKind X, active# U21(tt(), V1) -> U22# isNat V1)
     (mark# isNatKind X -> active# isNatKind X, active# U21(tt(), V1) -> isNat# V1)
     (mark# isNatKind X -> active# isNatKind X, active# U32 tt() -> mark# tt())
     (mark# isNatKind X -> active# isNatKind X, active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# isNatKind X -> active# isNatKind X, active# U31(tt(), V) -> isNatList# V)
     (mark# isNatKind X -> active# isNatKind X, active# U31(tt(), V) -> U32# isNatList V)
     (mark# isNatKind X -> active# isNatKind X, active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# isNatKind X -> active# isNatKind X, active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# isNatKind X -> active# isNatKind X, active# U42(tt(), V2) -> isNatIList# V2)
     (mark# isNatKind X -> active# isNatKind X, active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# isNatKind X -> active# isNatKind X, active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# isNatKind X -> active# isNatKind X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# isNatKind X -> active# isNatKind X, active# U43 tt() -> mark# tt())
     (mark# isNatKind X -> active# isNatKind X, active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# isNatKind X -> active# isNatKind X, active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# isNatKind X -> active# isNatKind X, active# isNatIList V -> isNatIListKind# V)
     (mark# isNatKind X -> active# isNatKind X, active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatKind X -> active# isNatKind X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatKind X -> active# isNatKind X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNatKind X -> active# isNatKind X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# isNatKind X -> active# isNatKind X, active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# isNatKind X -> active# isNatKind X, active# isNatIList zeros() -> mark# tt())
     (mark# isNatKind X -> active# isNatKind X, active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# isNatKind X -> active# isNatKind X, active# U52(tt(), V2) -> isNatList# V2)
     (mark# isNatKind X -> active# isNatKind X, active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# isNatKind X -> active# isNatKind X, active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# isNatKind X -> active# isNatKind X, active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# isNatKind X -> active# isNatKind X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# isNatKind X -> active# isNatKind X, active# U53 tt() -> mark# tt())
     (mark# isNatKind X -> active# isNatKind X, active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# isNatKind X -> active# isNatKind X, active# U62(tt(), V2) -> isNatIList# V2)
     (mark# isNatKind X -> active# isNatKind X, active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# isNatKind X -> active# isNatKind X, active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# isNatKind X -> active# isNatKind X, active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# isNatKind X -> active# isNatKind X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# isNatKind X -> active# isNatKind X, active# U63 tt() -> mark# tt())
     (mark# isNatKind X -> active# isNatKind X, active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# isNatKind X -> active# isNatKind X, active# length cons(N, L) -> isNatList# L)
     (mark# isNatKind X -> active# isNatKind X, active# length cons(N, L) -> isNat# N)
     (mark# isNatKind X -> active# isNatKind X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# isNatKind X -> active# isNatKind X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# isNatKind X -> active# isNatKind X, active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# isNatKind X -> active# isNatKind X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# isNatKind X -> active# isNatKind X, active# length cons(N, L) -> isNatIListKind# L)
     (mark# isNatKind X -> active# isNatKind X, active# length cons(N, L) -> isNatKind# N)
     (mark# isNatKind X -> active# isNatKind X, active# length nil() -> mark# 0())
     (mark# isNatKind X -> active# isNatKind X, active# U71(tt(), L) -> mark# s length L)
     (mark# isNatKind X -> active# isNatKind X, active# U71(tt(), L) -> s# length L)
     (mark# isNatKind X -> active# isNatKind X, active# U71(tt(), L) -> length# L)
     (mark# isNatKind X -> active# isNatKind X, active# U81 tt() -> mark# nil())
     (mark# isNatKind X -> active# isNatKind X, active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# isNatKind X -> active# isNatKind X, active# take(0(), IL) -> isNatIList# IL)
     (mark# isNatKind X -> active# isNatKind X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# isNatKind X -> active# isNatKind X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# isNatKind X -> active# isNatKind X, active# take(0(), IL) -> isNatIListKind# IL)
     (mark# isNatKind X -> active# isNatKind X, active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# isNatKind X -> active# isNatKind X, active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# isNatKind X -> active# isNatKind X, active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# isNatKind X -> active# isNatKind X, active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# isNatKind X -> active# isNatKind X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# isNatKind X -> active# isNatKind X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# isNatKind X -> active# isNatKind X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# isNatKind X -> active# isNatKind X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# isNatKind X -> active# isNatKind X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# isNatKind X -> active# isNatKind X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# isNatKind X -> active# isNatKind X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# isNatKind X -> active# isNatKind X, active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# isNatKind X -> active# isNatKind X, active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# isNatKind X -> active# isNatKind X, active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# isNatKind X -> active# isNatKind X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# isNatKind X -> active# isNatKind X, active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# isNatKind X -> active# isNatKind X, active# and(tt(), X) -> mark# X)
     (mark# isNatKind X -> active# isNatKind X, active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# isNatKind X -> active# isNatKind X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNatKind X -> active# isNatKind X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# isNatKind X -> active# isNatKind X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# isNatKind X -> active# isNatKind X, active# isNatIListKind zeros() -> mark# tt())
     (mark# isNatKind X -> active# isNatKind X, active# isNatIListKind nil() -> mark# tt())
     (mark# isNatKind X -> active# isNatKind X, active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# isNatKind X -> active# isNatKind X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNatKind X -> active# isNatKind X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# isNatKind X -> active# isNatKind X, active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# isNatKind X -> active# isNatKind X, active# isNatKind 0() -> mark# tt())
     (mark# isNatKind X -> active# isNatKind X, active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# isNatKind X -> active# isNatKind X, active# isNatKind s V1 -> isNatKind# V1)
     (mark# isNatKind X -> active# isNatKind X, active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# isNatKind X -> active# isNatKind X, active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# U81 X -> U81# mark X, U81# mark X -> U81# X)
     (mark# U81 X -> U81# mark X, U81# active X -> U81# X)
     (mark# s X -> s# mark X, s# mark X -> s# X)
     (mark# s X -> s# mark X, s# active X -> s# X)
     (mark# U53 X -> U53# mark X, U53# mark X -> U53# X)
     (mark# U53 X -> U53# mark X, U53# active X -> U53# X)
     (mark# U43 X -> U43# mark X, U43# mark X -> U43# X)
     (mark# U43 X -> U43# mark X, U43# active X -> U43# X)
     (mark# isNat X -> active# isNat X, active# zeros() -> mark# cons(0(), zeros()))
     (mark# isNat X -> active# isNat X, active# zeros() -> cons#(0(), zeros()))
     (mark# isNat X -> active# isNat X, active# U12 tt() -> mark# tt())
     (mark# isNat X -> active# isNat X, active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNat X -> active# isNat X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNat X -> active# isNat X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNat X -> active# isNat X, active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# isNat X -> active# isNat X, active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# isNat X -> active# isNat X, active# isNatList nil() -> mark# tt())
     (mark# isNat X -> active# isNat X, active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNat X -> active# isNat X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNat X -> active# isNat X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNat X -> active# isNat X, active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# isNat X -> active# isNat X, active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# isNat X -> active# isNat X, active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# isNat X -> active# isNat X, active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# isNat X -> active# isNat X, active# U11(tt(), V1) -> isNatList# V1)
     (mark# isNat X -> active# isNat X, active# U22 tt() -> mark# tt())
     (mark# isNat X -> active# isNat X, active# isNat 0() -> mark# tt())
     (mark# isNat X -> active# isNat X, active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# isNat X -> active# isNat X, active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# isNat X -> active# isNat X, active# isNat s V1 -> isNatKind# V1)
     (mark# isNat X -> active# isNat X, active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# isNat X -> active# isNat X, active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# isNat X -> active# isNat X, active# isNat length V1 -> isNatIListKind# V1)
     (mark# isNat X -> active# isNat X, active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# isNat X -> active# isNat X, active# U21(tt(), V1) -> U22# isNat V1)
     (mark# isNat X -> active# isNat X, active# U21(tt(), V1) -> isNat# V1)
     (mark# isNat X -> active# isNat X, active# U32 tt() -> mark# tt())
     (mark# isNat X -> active# isNat X, active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# isNat X -> active# isNat X, active# U31(tt(), V) -> isNatList# V)
     (mark# isNat X -> active# isNat X, active# U31(tt(), V) -> U32# isNatList V)
     (mark# isNat X -> active# isNat X, active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# isNat X -> active# isNat X, active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# isNat X -> active# isNat X, active# U42(tt(), V2) -> isNatIList# V2)
     (mark# isNat X -> active# isNat X, active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# isNat X -> active# isNat X, active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# isNat X -> active# isNat X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# isNat X -> active# isNat X, active# U43 tt() -> mark# tt())
     (mark# isNat X -> active# isNat X, active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# isNat X -> active# isNat X, active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# isNat X -> active# isNat X, active# isNatIList V -> isNatIListKind# V)
     (mark# isNat X -> active# isNat X, active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNat X -> active# isNat X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNat X -> active# isNat X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNat X -> active# isNat X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# isNat X -> active# isNat X, active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# isNat X -> active# isNat X, active# isNatIList zeros() -> mark# tt())
     (mark# isNat X -> active# isNat X, active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# isNat X -> active# isNat X, active# U52(tt(), V2) -> isNatList# V2)
     (mark# isNat X -> active# isNat X, active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# isNat X -> active# isNat X, active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# isNat X -> active# isNat X, active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# isNat X -> active# isNat X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# isNat X -> active# isNat X, active# U53 tt() -> mark# tt())
     (mark# isNat X -> active# isNat X, active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# isNat X -> active# isNat X, active# U62(tt(), V2) -> isNatIList# V2)
     (mark# isNat X -> active# isNat X, active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# isNat X -> active# isNat X, active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# isNat X -> active# isNat X, active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# isNat X -> active# isNat X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# isNat X -> active# isNat X, active# U63 tt() -> mark# tt())
     (mark# isNat X -> active# isNat X, active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# isNat X -> active# isNat X, active# length cons(N, L) -> isNatList# L)
     (mark# isNat X -> active# isNat X, active# length cons(N, L) -> isNat# N)
     (mark# isNat X -> active# isNat X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# isNat X -> active# isNat X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# isNat X -> active# isNat X, active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# isNat X -> active# isNat X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# isNat X -> active# isNat X, active# length cons(N, L) -> isNatIListKind# L)
     (mark# isNat X -> active# isNat X, active# length cons(N, L) -> isNatKind# N)
     (mark# isNat X -> active# isNat X, active# length nil() -> mark# 0())
     (mark# isNat X -> active# isNat X, active# U71(tt(), L) -> mark# s length L)
     (mark# isNat X -> active# isNat X, active# U71(tt(), L) -> s# length L)
     (mark# isNat X -> active# isNat X, active# U71(tt(), L) -> length# L)
     (mark# isNat X -> active# isNat X, active# U81 tt() -> mark# nil())
     (mark# isNat X -> active# isNat X, active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# isNat X -> active# isNat X, active# take(0(), IL) -> isNatIList# IL)
     (mark# isNat X -> active# isNat X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# isNat X -> active# isNat X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# isNat X -> active# isNat X, active# take(0(), IL) -> isNatIListKind# IL)
     (mark# isNat X -> active# isNat X, active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# isNat X -> active# isNat X, active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# isNat X -> active# isNat X, active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# isNat X -> active# isNat X, active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# isNat X -> active# isNat X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# isNat X -> active# isNat X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# isNat X -> active# isNat X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# isNat X -> active# isNat X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# isNat X -> active# isNat X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# isNat X -> active# isNat X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# isNat X -> active# isNat X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# isNat X -> active# isNat X, active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# isNat X -> active# isNat X, active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# isNat X -> active# isNat X, active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# isNat X -> active# isNat X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# isNat X -> active# isNat X, active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# isNat X -> active# isNat X, active# and(tt(), X) -> mark# X)
     (mark# isNat X -> active# isNat X, active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# isNat X -> active# isNat X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNat X -> active# isNat X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# isNat X -> active# isNat X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# isNat X -> active# isNat X, active# isNatIListKind zeros() -> mark# tt())
     (mark# isNat X -> active# isNat X, active# isNatIListKind nil() -> mark# tt())
     (mark# isNat X -> active# isNat X, active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# isNat X -> active# isNat X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNat X -> active# isNat X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# isNat X -> active# isNat X, active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# isNat X -> active# isNat X, active# isNatKind 0() -> mark# tt())
     (mark# isNat X -> active# isNat X, active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# isNat X -> active# isNat X, active# isNatKind s V1 -> isNatKind# V1)
     (mark# isNat X -> active# isNat X, active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# isNat X -> active# isNat X, active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# isNatList X -> active# isNatList X, active# zeros() -> mark# cons(0(), zeros()))
     (mark# isNatList X -> active# isNatList X, active# zeros() -> cons#(0(), zeros()))
     (mark# isNatList X -> active# isNatList X, active# U12 tt() -> mark# tt())
     (mark# isNatList X -> active# isNatList X, active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatList X -> active# isNatList X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatList X -> active# isNatList X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNatList X -> active# isNatList X, active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# isNatList X -> active# isNatList X, active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# isNatList X -> active# isNatList X, active# isNatList nil() -> mark# tt())
     (mark# isNatList X -> active# isNatList X, active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatList X -> active# isNatList X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatList X -> active# isNatList X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNatList X -> active# isNatList X, active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# isNatList X -> active# isNatList X, active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# isNatList X -> active# isNatList X, active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# isNatList X -> active# isNatList X, active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# isNatList X -> active# isNatList X, active# U11(tt(), V1) -> isNatList# V1)
     (mark# isNatList X -> active# isNatList X, active# U22 tt() -> mark# tt())
     (mark# isNatList X -> active# isNatList X, active# isNat 0() -> mark# tt())
     (mark# isNatList X -> active# isNatList X, active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# isNatList X -> active# isNatList X, active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# isNatList X -> active# isNatList X, active# isNat s V1 -> isNatKind# V1)
     (mark# isNatList X -> active# isNatList X, active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# isNatList X -> active# isNatList X, active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# isNatList X -> active# isNatList X, active# isNat length V1 -> isNatIListKind# V1)
     (mark# isNatList X -> active# isNatList X, active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# isNatList X -> active# isNatList X, active# U21(tt(), V1) -> U22# isNat V1)
     (mark# isNatList X -> active# isNatList X, active# U21(tt(), V1) -> isNat# V1)
     (mark# isNatList X -> active# isNatList X, active# U32 tt() -> mark# tt())
     (mark# isNatList X -> active# isNatList X, active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# isNatList X -> active# isNatList X, active# U31(tt(), V) -> isNatList# V)
     (mark# isNatList X -> active# isNatList X, active# U31(tt(), V) -> U32# isNatList V)
     (mark# isNatList X -> active# isNatList X, active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# isNatList X -> active# isNatList X, active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# isNatList X -> active# isNatList X, active# U42(tt(), V2) -> isNatIList# V2)
     (mark# isNatList X -> active# isNatList X, active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# isNatList X -> active# isNatList X, active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# isNatList X -> active# isNatList X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# isNatList X -> active# isNatList X, active# U43 tt() -> mark# tt())
     (mark# isNatList X -> active# isNatList X, active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# isNatList X -> active# isNatList X, active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# isNatList X -> active# isNatList X, active# isNatIList V -> isNatIListKind# V)
     (mark# isNatList X -> active# isNatList X, active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatList X -> active# isNatList X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# isNatList X -> active# isNatList X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNatList X -> active# isNatList X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# isNatList X -> active# isNatList X, active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# isNatList X -> active# isNatList X, active# isNatIList zeros() -> mark# tt())
     (mark# isNatList X -> active# isNatList X, active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# isNatList X -> active# isNatList X, active# U52(tt(), V2) -> isNatList# V2)
     (mark# isNatList X -> active# isNatList X, active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# isNatList X -> active# isNatList X, active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# isNatList X -> active# isNatList X, active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# isNatList X -> active# isNatList X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# isNatList X -> active# isNatList X, active# U53 tt() -> mark# tt())
     (mark# isNatList X -> active# isNatList X, active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# isNatList X -> active# isNatList X, active# U62(tt(), V2) -> isNatIList# V2)
     (mark# isNatList X -> active# isNatList X, active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# isNatList X -> active# isNatList X, active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# isNatList X -> active# isNatList X, active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# isNatList X -> active# isNatList X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# isNatList X -> active# isNatList X, active# U63 tt() -> mark# tt())
     (mark# isNatList X -> active# isNatList X, active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# isNatList X -> active# isNatList X, active# length cons(N, L) -> isNatList# L)
     (mark# isNatList X -> active# isNatList X, active# length cons(N, L) -> isNat# N)
     (mark# isNatList X -> active# isNatList X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# isNatList X -> active# isNatList X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# isNatList X -> active# isNatList X, active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# isNatList X -> active# isNatList X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# isNatList X -> active# isNatList X, active# length cons(N, L) -> isNatIListKind# L)
     (mark# isNatList X -> active# isNatList X, active# length cons(N, L) -> isNatKind# N)
     (mark# isNatList X -> active# isNatList X, active# length nil() -> mark# 0())
     (mark# isNatList X -> active# isNatList X, active# U71(tt(), L) -> mark# s length L)
     (mark# isNatList X -> active# isNatList X, active# U71(tt(), L) -> s# length L)
     (mark# isNatList X -> active# isNatList X, active# U71(tt(), L) -> length# L)
     (mark# isNatList X -> active# isNatList X, active# U81 tt() -> mark# nil())
     (mark# isNatList X -> active# isNatList X, active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# isNatList X -> active# isNatList X, active# take(0(), IL) -> isNatIList# IL)
     (mark# isNatList X -> active# isNatList X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# isNatList X -> active# isNatList X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# isNatList X -> active# isNatList X, active# take(0(), IL) -> isNatIListKind# IL)
     (mark# isNatList X -> active# isNatList X, active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# isNatList X -> active# isNatList X, active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# isNatList X -> active# isNatList X, active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# isNatList X -> active# isNatList X, active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# isNatList X -> active# isNatList X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# isNatList X -> active# isNatList X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# isNatList X -> active# isNatList X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# isNatList X -> active# isNatList X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# isNatList X -> active# isNatList X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# isNatList X -> active# isNatList X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# isNatList X -> active# isNatList X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# isNatList X -> active# isNatList X, active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# isNatList X -> active# isNatList X, active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# isNatList X -> active# isNatList X, active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# isNatList X -> active# isNatList X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# isNatList X -> active# isNatList X, active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# isNatList X -> active# isNatList X, active# and(tt(), X) -> mark# X)
     (mark# isNatList X -> active# isNatList X, active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# isNatList X -> active# isNatList X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNatList X -> active# isNatList X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# isNatList X -> active# isNatList X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# isNatList X -> active# isNatList X, active# isNatIListKind zeros() -> mark# tt())
     (mark# isNatList X -> active# isNatList X, active# isNatIListKind nil() -> mark# tt())
     (mark# isNatList X -> active# isNatList X, active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# isNatList X -> active# isNatList X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# isNatList X -> active# isNatList X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# isNatList X -> active# isNatList X, active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# isNatList X -> active# isNatList X, active# isNatKind 0() -> mark# tt())
     (mark# isNatList X -> active# isNatList X, active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# isNatList X -> active# isNatList X, active# isNatKind s V1 -> isNatKind# V1)
     (mark# isNatList X -> active# isNatList X, active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# isNatList X -> active# isNatList X, active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# and(X1, X2) -> and#(mark X1, X2), and#(X1, mark X2) -> and#(X1, X2))
     (mark# and(X1, X2) -> and#(mark X1, X2), and#(X1, active X2) -> and#(X1, X2))
     (mark# and(X1, X2) -> and#(mark X1, X2), and#(mark X1, X2) -> and#(X1, X2))
     (mark# and(X1, X2) -> and#(mark X1, X2), and#(active X1, X2) -> and#(X1, X2))
     (mark# U62(X1, X2) -> U62#(mark X1, X2), U62#(X1, mark X2) -> U62#(X1, X2))
     (mark# U62(X1, X2) -> U62#(mark X1, X2), U62#(X1, active X2) -> U62#(X1, X2))
     (mark# U62(X1, X2) -> U62#(mark X1, X2), U62#(mark X1, X2) -> U62#(X1, X2))
     (mark# U62(X1, X2) -> U62#(mark X1, X2), U62#(active X1, X2) -> U62#(X1, X2))
     (mark# U42(X1, X2) -> U42#(mark X1, X2), U42#(X1, mark X2) -> U42#(X1, X2))
     (mark# U42(X1, X2) -> U42#(mark X1, X2), U42#(X1, active X2) -> U42#(X1, X2))
     (mark# U42(X1, X2) -> U42#(mark X1, X2), U42#(mark X1, X2) -> U42#(X1, X2))
     (mark# U42(X1, X2) -> U42#(mark X1, X2), U42#(active X1, X2) -> U42#(X1, X2))
     (mark# U21(X1, X2) -> U21#(mark X1, X2), U21#(X1, mark X2) -> U21#(X1, X2))
     (mark# U21(X1, X2) -> U21#(mark X1, X2), U21#(X1, active X2) -> U21#(X1, X2))
     (mark# U21(X1, X2) -> U21#(mark X1, X2), U21#(mark X1, X2) -> U21#(X1, X2))
     (mark# U21(X1, X2) -> U21#(mark X1, X2), U21#(active X1, X2) -> U21#(X1, X2))
     (mark# cons(X1, X2) -> cons#(mark X1, X2), cons#(X1, mark X2) -> cons#(X1, X2))
     (mark# cons(X1, X2) -> cons#(mark X1, X2), cons#(X1, active X2) -> cons#(X1, X2))
     (mark# cons(X1, X2) -> cons#(mark X1, X2), cons#(mark X1, X2) -> cons#(X1, X2))
     (mark# cons(X1, X2) -> cons#(mark X1, X2), cons#(active X1, X2) -> cons#(X1, X2))
     (U61#(mark X1, X2, X3) -> U61#(X1, X2, X3), U61#(X1, X2, mark X3) -> U61#(X1, X2, X3))
     (U61#(mark X1, X2, X3) -> U61#(X1, X2, X3), U61#(X1, X2, active X3) -> U61#(X1, X2, X3))
     (U61#(mark X1, X2, X3) -> U61#(X1, X2, X3), U61#(X1, mark X2, X3) -> U61#(X1, X2, X3))
     (U61#(mark X1, X2, X3) -> U61#(X1, X2, X3), U61#(X1, active X2, X3) -> U61#(X1, X2, X3))
     (U61#(mark X1, X2, X3) -> U61#(X1, X2, X3), U61#(mark X1, X2, X3) -> U61#(X1, X2, X3))
     (U61#(mark X1, X2, X3) -> U61#(X1, X2, X3), U61#(active X1, X2, X3) -> U61#(X1, X2, X3))
     (U61#(X1, mark X2, X3) -> U61#(X1, X2, X3), U61#(X1, X2, mark X3) -> U61#(X1, X2, X3))
     (U61#(X1, mark X2, X3) -> U61#(X1, X2, X3), U61#(X1, X2, active X3) -> U61#(X1, X2, X3))
     (U61#(X1, mark X2, X3) -> U61#(X1, X2, X3), U61#(X1, mark X2, X3) -> U61#(X1, X2, X3))
     (U61#(X1, mark X2, X3) -> U61#(X1, X2, X3), U61#(X1, active X2, X3) -> U61#(X1, X2, X3))
     (U61#(X1, mark X2, X3) -> U61#(X1, X2, X3), U61#(mark X1, X2, X3) -> U61#(X1, X2, X3))
     (U61#(X1, mark X2, X3) -> U61#(X1, X2, X3), U61#(active X1, X2, X3) -> U61#(X1, X2, X3))
     (U61#(X1, X2, mark X3) -> U61#(X1, X2, X3), U61#(X1, X2, mark X3) -> U61#(X1, X2, X3))
     (U61#(X1, X2, mark X3) -> U61#(X1, X2, X3), U61#(X1, X2, active X3) -> U61#(X1, X2, X3))
     (U61#(X1, X2, mark X3) -> U61#(X1, X2, X3), U61#(X1, mark X2, X3) -> U61#(X1, X2, X3))
     (U61#(X1, X2, mark X3) -> U61#(X1, X2, X3), U61#(X1, active X2, X3) -> U61#(X1, X2, X3))
     (U61#(X1, X2, mark X3) -> U61#(X1, X2, X3), U61#(mark X1, X2, X3) -> U61#(X1, X2, X3))
     (U61#(X1, X2, mark X3) -> U61#(X1, X2, X3), U61#(active X1, X2, X3) -> U61#(X1, X2, X3))
     (U51#(mark X1, X2, X3) -> U51#(X1, X2, X3), U51#(X1, X2, mark X3) -> U51#(X1, X2, X3))
     (U51#(mark X1, X2, X3) -> U51#(X1, X2, X3), U51#(X1, X2, active X3) -> U51#(X1, X2, X3))
     (U51#(mark X1, X2, X3) -> U51#(X1, X2, X3), U51#(X1, mark X2, X3) -> U51#(X1, X2, X3))
     (U51#(mark X1, X2, X3) -> U51#(X1, X2, X3), U51#(X1, active X2, X3) -> U51#(X1, X2, X3))
     (U51#(mark X1, X2, X3) -> U51#(X1, X2, X3), U51#(mark X1, X2, X3) -> U51#(X1, X2, X3))
     (U51#(mark X1, X2, X3) -> U51#(X1, X2, X3), U51#(active X1, X2, X3) -> U51#(X1, X2, X3))
     (U51#(X1, mark X2, X3) -> U51#(X1, X2, X3), U51#(X1, X2, mark X3) -> U51#(X1, X2, X3))
     (U51#(X1, mark X2, X3) -> U51#(X1, X2, X3), U51#(X1, X2, active X3) -> U51#(X1, X2, X3))
     (U51#(X1, mark X2, X3) -> U51#(X1, X2, X3), U51#(X1, mark X2, X3) -> U51#(X1, X2, X3))
     (U51#(X1, mark X2, X3) -> U51#(X1, X2, X3), U51#(X1, active X2, X3) -> U51#(X1, X2, X3))
     (U51#(X1, mark X2, X3) -> U51#(X1, X2, X3), U51#(mark X1, X2, X3) -> U51#(X1, X2, X3))
     (U51#(X1, mark X2, X3) -> U51#(X1, X2, X3), U51#(active X1, X2, X3) -> U51#(X1, X2, X3))
     (U51#(X1, X2, mark X3) -> U51#(X1, X2, X3), U51#(X1, X2, mark X3) -> U51#(X1, X2, X3))
     (U51#(X1, X2, mark X3) -> U51#(X1, X2, X3), U51#(X1, X2, active X3) -> U51#(X1, X2, X3))
     (U51#(X1, X2, mark X3) -> U51#(X1, X2, X3), U51#(X1, mark X2, X3) -> U51#(X1, X2, X3))
     (U51#(X1, X2, mark X3) -> U51#(X1, X2, X3), U51#(X1, active X2, X3) -> U51#(X1, X2, X3))
     (U51#(X1, X2, mark X3) -> U51#(X1, X2, X3), U51#(mark X1, X2, X3) -> U51#(X1, X2, X3))
     (U51#(X1, X2, mark X3) -> U51#(X1, X2, X3), U51#(active X1, X2, X3) -> U51#(X1, X2, X3))
     (U41#(mark X1, X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark X3) -> U41#(X1, X2, X3))
     (U41#(mark X1, X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3))
     (U41#(mark X1, X2, X3) -> U41#(X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3))
     (U41#(mark X1, X2, X3) -> U41#(X1, X2, X3), U41#(X1, active X2, X3) -> U41#(X1, X2, X3))
     (U41#(mark X1, X2, X3) -> U41#(X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3))
     (U41#(mark X1, X2, X3) -> U41#(X1, X2, X3), U41#(active X1, X2, X3) -> U41#(X1, X2, X3))
     (U41#(X1, mark X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark X3) -> U41#(X1, X2, X3))
     (U41#(X1, mark X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3))
     (U41#(X1, mark X2, X3) -> U41#(X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3))
     (U41#(X1, mark X2, X3) -> U41#(X1, X2, X3), U41#(X1, active X2, X3) -> U41#(X1, X2, X3))
     (U41#(X1, mark X2, X3) -> U41#(X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3))
     (U41#(X1, mark X2, X3) -> U41#(X1, X2, X3), U41#(active X1, X2, X3) -> U41#(X1, X2, X3))
     (U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark X3) -> U41#(X1, X2, X3))
     (U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3))
     (U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3))
     (U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(X1, active X2, X3) -> U41#(X1, X2, X3))
     (U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3))
     (U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(active X1, X2, X3) -> U41#(X1, X2, X3))
     (mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3), U51#(X1, X2, mark X3) -> U51#(X1, X2, X3))
     (mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3), U51#(X1, X2, active X3) -> U51#(X1, X2, X3))
     (mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3), U51#(X1, mark X2, X3) -> U51#(X1, X2, X3))
     (mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3), U51#(X1, active X2, X3) -> U51#(X1, X2, X3))
     (mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3), U51#(mark X1, X2, X3) -> U51#(X1, X2, X3))
     (mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3), U51#(active X1, X2, X3) -> U51#(X1, X2, X3))
     (active# isNatKind length V1 -> isNatIListKind# V1, isNatIListKind# mark X -> isNatIListKind# X)
     (active# isNatKind length V1 -> isNatIListKind# V1, isNatIListKind# active X -> isNatIListKind# X)
     (active# isNatIListKind take(V1, V2) -> isNatKind# V1, isNatKind# mark X -> isNatKind# X)
     (active# isNatIListKind take(V1, V2) -> isNatKind# V1, isNatKind# active X -> isNatKind# X)
     (active# U61(tt(), V1, V2) -> isNat# V1, isNat# mark X -> isNat# X)
     (active# U61(tt(), V1, V2) -> isNat# V1, isNat# active X -> isNat# X)
     (active# isNatIList cons(V1, V2) -> isNatKind# V1, isNatKind# mark X -> isNatKind# X)
     (active# isNatIList cons(V1, V2) -> isNatKind# V1, isNatKind# active X -> isNatKind# X)
     (active# U21(tt(), V1) -> isNat# V1, isNat# mark X -> isNat# X)
     (active# U21(tt(), V1) -> isNat# V1, isNat# active X -> isNat# X)
     (active# isNat s V1 -> isNatKind# V1, isNatKind# mark X -> isNatKind# X)
     (active# isNat s V1 -> isNatKind# V1, isNatKind# active X -> isNatKind# X)
     (active# isNatList take(V1, V2) -> isNatKind# V1, isNatKind# mark X -> isNatKind# X)
     (active# isNatList take(V1, V2) -> isNatKind# V1, isNatKind# active X -> isNatKind# X)
     (active# U91(tt(), IL, M, N) -> take#(M, IL), take#(X1, mark X2) -> take#(X1, X2))
     (active# U91(tt(), IL, M, N) -> take#(M, IL), take#(X1, active X2) -> take#(X1, X2))
     (active# U91(tt(), IL, M, N) -> take#(M, IL), take#(mark X1, X2) -> take#(X1, X2))
     (active# U91(tt(), IL, M, N) -> take#(M, IL), take#(active X1, X2) -> take#(X1, X2))
     (active# take(s M, cons(N, IL)) -> isNat# N, isNat# mark X -> isNat# X)
     (active# take(s M, cons(N, IL)) -> isNat# N, isNat# active X -> isNat# X)
     (active# length cons(N, L) -> isNat# N, isNat# mark X -> isNat# X)
     (active# length cons(N, L) -> isNat# N, isNat# active X -> isNat# X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# cons(X1, X2) -> mark# X1)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# 0() -> active# 0())
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# zeros() -> active# zeros())
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U12 X -> mark# X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U12 X -> active# U12 mark X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U12 X -> U12# mark X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# isNatList X -> active# isNatList X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U11(X1, X2) -> mark# X1)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# tt() -> active# tt())
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U22 X -> mark# X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U22 X -> active# U22 mark X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U22 X -> U22# mark X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# isNat X -> active# isNat X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2) -> mark# X1)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U32 X -> mark# X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U32 X -> active# U32 mark X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U32 X -> U32# mark X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U31(X1, X2) -> mark# X1)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U42(X1, X2) -> mark# X1)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U43 X -> mark# X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U43 X -> active# U43 mark X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U43 X -> U43# mark X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# isNatIList X -> active# isNatIList X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U52(X1, X2) -> mark# X1)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U53 X -> mark# X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U53 X -> active# U53 mark X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U53 X -> U53# mark X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U62(X1, X2) -> mark# X1)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U63 X -> mark# X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U63 X -> active# U63 mark X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U63 X -> U63# mark X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# s X -> mark# X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# s X -> active# s mark X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# s X -> s# mark X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# length X -> mark# X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# length X -> active# length mark X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# length X -> length# mark X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U71(X1, X2) -> mark# X1)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# nil() -> active# nil())
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U81 X -> mark# X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U81 X -> active# U81 mark X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U81 X -> U81# mark X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X1)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X2)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# and(X1, X2) -> mark# X1)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# isNatKind X -> active# isNatKind X)
     (mark# U71(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1)
     (mark# U71(X1, X2) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# U71(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# U71(X1, X2) -> mark# X1, mark# 0() -> active# 0())
     (mark# U71(X1, X2) -> mark# X1, mark# zeros() -> active# zeros())
     (mark# U71(X1, X2) -> mark# X1, mark# U12 X -> mark# X)
     (mark# U71(X1, X2) -> mark# X1, mark# U12 X -> active# U12 mark X)
     (mark# U71(X1, X2) -> mark# X1, mark# U12 X -> U12# mark X)
     (mark# U71(X1, X2) -> mark# X1, mark# isNatList X -> active# isNatList X)
     (mark# U71(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1)
     (mark# U71(X1, X2) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# U71(X1, X2) -> mark# X1, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# U71(X1, X2) -> mark# X1, mark# tt() -> active# tt())
     (mark# U71(X1, X2) -> mark# X1, mark# U22 X -> mark# X)
     (mark# U71(X1, X2) -> mark# X1, mark# U22 X -> active# U22 mark X)
     (mark# U71(X1, X2) -> mark# X1, mark# U22 X -> U22# mark X)
     (mark# U71(X1, X2) -> mark# X1, mark# isNat X -> active# isNat X)
     (mark# U71(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1)
     (mark# U71(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# U71(X1, X2) -> mark# X1, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# U71(X1, X2) -> mark# X1, mark# U32 X -> mark# X)
     (mark# U71(X1, X2) -> mark# X1, mark# U32 X -> active# U32 mark X)
     (mark# U71(X1, X2) -> mark# X1, mark# U32 X -> U32# mark X)
     (mark# U71(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1)
     (mark# U71(X1, X2) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# U71(X1, X2) -> mark# X1, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# U71(X1, X2) -> mark# X1, mark# U42(X1, X2) -> mark# X1)
     (mark# U71(X1, X2) -> mark# X1, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# U71(X1, X2) -> mark# X1, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# U71(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# U71(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# U71(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# U71(X1, X2) -> mark# X1, mark# U43 X -> mark# X)
     (mark# U71(X1, X2) -> mark# X1, mark# U43 X -> active# U43 mark X)
     (mark# U71(X1, X2) -> mark# X1, mark# U43 X -> U43# mark X)
     (mark# U71(X1, X2) -> mark# X1, mark# isNatIList X -> active# isNatIList X)
     (mark# U71(X1, X2) -> mark# X1, mark# U52(X1, X2) -> mark# X1)
     (mark# U71(X1, X2) -> mark# X1, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# U71(X1, X2) -> mark# X1, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# U71(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# U71(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# U71(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# U71(X1, X2) -> mark# X1, mark# U53 X -> mark# X)
     (mark# U71(X1, X2) -> mark# X1, mark# U53 X -> active# U53 mark X)
     (mark# U71(X1, X2) -> mark# X1, mark# U53 X -> U53# mark X)
     (mark# U71(X1, X2) -> mark# X1, mark# U62(X1, X2) -> mark# X1)
     (mark# U71(X1, X2) -> mark# X1, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# U71(X1, X2) -> mark# X1, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# U71(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# U71(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# U71(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# U71(X1, X2) -> mark# X1, mark# U63 X -> mark# X)
     (mark# U71(X1, X2) -> mark# X1, mark# U63 X -> active# U63 mark X)
     (mark# U71(X1, X2) -> mark# X1, mark# U63 X -> U63# mark X)
     (mark# U71(X1, X2) -> mark# X1, mark# s X -> mark# X)
     (mark# U71(X1, X2) -> mark# X1, mark# s X -> active# s mark X)
     (mark# U71(X1, X2) -> mark# X1, mark# s X -> s# mark X)
     (mark# U71(X1, X2) -> mark# X1, mark# length X -> mark# X)
     (mark# U71(X1, X2) -> mark# X1, mark# length X -> active# length mark X)
     (mark# U71(X1, X2) -> mark# X1, mark# length X -> length# mark X)
     (mark# U71(X1, X2) -> mark# X1, mark# U71(X1, X2) -> mark# X1)
     (mark# U71(X1, X2) -> mark# X1, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# U71(X1, X2) -> mark# X1, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# U71(X1, X2) -> mark# X1, mark# nil() -> active# nil())
     (mark# U71(X1, X2) -> mark# X1, mark# U81 X -> mark# X)
     (mark# U71(X1, X2) -> mark# X1, mark# U81 X -> active# U81 mark X)
     (mark# U71(X1, X2) -> mark# X1, mark# U81 X -> U81# mark X)
     (mark# U71(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1)
     (mark# U71(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2)
     (mark# U71(X1, X2) -> mark# X1, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# U71(X1, X2) -> mark# X1, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# U71(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# U71(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# U71(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# U71(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1)
     (mark# U71(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# U71(X1, X2) -> mark# X1, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# U71(X1, X2) -> mark# X1, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# U71(X1, X2) -> mark# X1, mark# isNatKind X -> active# isNatKind X)
     (mark# U62(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1)
     (mark# U62(X1, X2) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# U62(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# U62(X1, X2) -> mark# X1, mark# 0() -> active# 0())
     (mark# U62(X1, X2) -> mark# X1, mark# zeros() -> active# zeros())
     (mark# U62(X1, X2) -> mark# X1, mark# U12 X -> mark# X)
     (mark# U62(X1, X2) -> mark# X1, mark# U12 X -> active# U12 mark X)
     (mark# U62(X1, X2) -> mark# X1, mark# U12 X -> U12# mark X)
     (mark# U62(X1, X2) -> mark# X1, mark# isNatList X -> active# isNatList X)
     (mark# U62(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1)
     (mark# U62(X1, X2) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# U62(X1, X2) -> mark# X1, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# U62(X1, X2) -> mark# X1, mark# tt() -> active# tt())
     (mark# U62(X1, X2) -> mark# X1, mark# U22 X -> mark# X)
     (mark# U62(X1, X2) -> mark# X1, mark# U22 X -> active# U22 mark X)
     (mark# U62(X1, X2) -> mark# X1, mark# U22 X -> U22# mark X)
     (mark# U62(X1, X2) -> mark# X1, mark# isNat X -> active# isNat X)
     (mark# U62(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1)
     (mark# U62(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# U62(X1, X2) -> mark# X1, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# U62(X1, X2) -> mark# X1, mark# U32 X -> mark# X)
     (mark# U62(X1, X2) -> mark# X1, mark# U32 X -> active# U32 mark X)
     (mark# U62(X1, X2) -> mark# X1, mark# U32 X -> U32# mark X)
     (mark# U62(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1)
     (mark# U62(X1, X2) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# U62(X1, X2) -> mark# X1, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# U62(X1, X2) -> mark# X1, mark# U42(X1, X2) -> mark# X1)
     (mark# U62(X1, X2) -> mark# X1, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# U62(X1, X2) -> mark# X1, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# U62(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# U62(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# U62(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# U62(X1, X2) -> mark# X1, mark# U43 X -> mark# X)
     (mark# U62(X1, X2) -> mark# X1, mark# U43 X -> active# U43 mark X)
     (mark# U62(X1, X2) -> mark# X1, mark# U43 X -> U43# mark X)
     (mark# U62(X1, X2) -> mark# X1, mark# isNatIList X -> active# isNatIList X)
     (mark# U62(X1, X2) -> mark# X1, mark# U52(X1, X2) -> mark# X1)
     (mark# U62(X1, X2) -> mark# X1, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# U62(X1, X2) -> mark# X1, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# U62(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# U62(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# U62(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# U62(X1, X2) -> mark# X1, mark# U53 X -> mark# X)
     (mark# U62(X1, X2) -> mark# X1, mark# U53 X -> active# U53 mark X)
     (mark# U62(X1, X2) -> mark# X1, mark# U53 X -> U53# mark X)
     (mark# U62(X1, X2) -> mark# X1, mark# U62(X1, X2) -> mark# X1)
     (mark# U62(X1, X2) -> mark# X1, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# U62(X1, X2) -> mark# X1, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# U62(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# U62(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# U62(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# U62(X1, X2) -> mark# X1, mark# U63 X -> mark# X)
     (mark# U62(X1, X2) -> mark# X1, mark# U63 X -> active# U63 mark X)
     (mark# U62(X1, X2) -> mark# X1, mark# U63 X -> U63# mark X)
     (mark# U62(X1, X2) -> mark# X1, mark# s X -> mark# X)
     (mark# U62(X1, X2) -> mark# X1, mark# s X -> active# s mark X)
     (mark# U62(X1, X2) -> mark# X1, mark# s X -> s# mark X)
     (mark# U62(X1, X2) -> mark# X1, mark# length X -> mark# X)
     (mark# U62(X1, X2) -> mark# X1, mark# length X -> active# length mark X)
     (mark# U62(X1, X2) -> mark# X1, mark# length X -> length# mark X)
     (mark# U62(X1, X2) -> mark# X1, mark# U71(X1, X2) -> mark# X1)
     (mark# U62(X1, X2) -> mark# X1, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# U62(X1, X2) -> mark# X1, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# U62(X1, X2) -> mark# X1, mark# nil() -> active# nil())
     (mark# U62(X1, X2) -> mark# X1, mark# U81 X -> mark# X)
     (mark# U62(X1, X2) -> mark# X1, mark# U81 X -> active# U81 mark X)
     (mark# U62(X1, X2) -> mark# X1, mark# U81 X -> U81# mark X)
     (mark# U62(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1)
     (mark# U62(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2)
     (mark# U62(X1, X2) -> mark# X1, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# U62(X1, X2) -> mark# X1, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# U62(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# U62(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# U62(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# U62(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1)
     (mark# U62(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# U62(X1, X2) -> mark# X1, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# U62(X1, X2) -> mark# X1, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# U62(X1, X2) -> mark# X1, mark# isNatKind X -> active# isNatKind X)
     (mark# U52(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1)
     (mark# U52(X1, X2) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# U52(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# U52(X1, X2) -> mark# X1, mark# 0() -> active# 0())
     (mark# U52(X1, X2) -> mark# X1, mark# zeros() -> active# zeros())
     (mark# U52(X1, X2) -> mark# X1, mark# U12 X -> mark# X)
     (mark# U52(X1, X2) -> mark# X1, mark# U12 X -> active# U12 mark X)
     (mark# U52(X1, X2) -> mark# X1, mark# U12 X -> U12# mark X)
     (mark# U52(X1, X2) -> mark# X1, mark# isNatList X -> active# isNatList X)
     (mark# U52(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1)
     (mark# U52(X1, X2) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# U52(X1, X2) -> mark# X1, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# U52(X1, X2) -> mark# X1, mark# tt() -> active# tt())
     (mark# U52(X1, X2) -> mark# X1, mark# U22 X -> mark# X)
     (mark# U52(X1, X2) -> mark# X1, mark# U22 X -> active# U22 mark X)
     (mark# U52(X1, X2) -> mark# X1, mark# U22 X -> U22# mark X)
     (mark# U52(X1, X2) -> mark# X1, mark# isNat X -> active# isNat X)
     (mark# U52(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1)
     (mark# U52(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# U52(X1, X2) -> mark# X1, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# U52(X1, X2) -> mark# X1, mark# U32 X -> mark# X)
     (mark# U52(X1, X2) -> mark# X1, mark# U32 X -> active# U32 mark X)
     (mark# U52(X1, X2) -> mark# X1, mark# U32 X -> U32# mark X)
     (mark# U52(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1)
     (mark# U52(X1, X2) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# U52(X1, X2) -> mark# X1, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# U52(X1, X2) -> mark# X1, mark# U42(X1, X2) -> mark# X1)
     (mark# U52(X1, X2) -> mark# X1, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# U52(X1, X2) -> mark# X1, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# U52(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# U52(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# U52(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# U52(X1, X2) -> mark# X1, mark# U43 X -> mark# X)
     (mark# U52(X1, X2) -> mark# X1, mark# U43 X -> active# U43 mark X)
     (mark# U52(X1, X2) -> mark# X1, mark# U43 X -> U43# mark X)
     (mark# U52(X1, X2) -> mark# X1, mark# isNatIList X -> active# isNatIList X)
     (mark# U52(X1, X2) -> mark# X1, mark# U52(X1, X2) -> mark# X1)
     (mark# U52(X1, X2) -> mark# X1, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# U52(X1, X2) -> mark# X1, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# U52(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# U52(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# U52(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# U52(X1, X2) -> mark# X1, mark# U53 X -> mark# X)
     (mark# U52(X1, X2) -> mark# X1, mark# U53 X -> active# U53 mark X)
     (mark# U52(X1, X2) -> mark# X1, mark# U53 X -> U53# mark X)
     (mark# U52(X1, X2) -> mark# X1, mark# U62(X1, X2) -> mark# X1)
     (mark# U52(X1, X2) -> mark# X1, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# U52(X1, X2) -> mark# X1, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# U52(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# U52(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# U52(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# U52(X1, X2) -> mark# X1, mark# U63 X -> mark# X)
     (mark# U52(X1, X2) -> mark# X1, mark# U63 X -> active# U63 mark X)
     (mark# U52(X1, X2) -> mark# X1, mark# U63 X -> U63# mark X)
     (mark# U52(X1, X2) -> mark# X1, mark# s X -> mark# X)
     (mark# U52(X1, X2) -> mark# X1, mark# s X -> active# s mark X)
     (mark# U52(X1, X2) -> mark# X1, mark# s X -> s# mark X)
     (mark# U52(X1, X2) -> mark# X1, mark# length X -> mark# X)
     (mark# U52(X1, X2) -> mark# X1, mark# length X -> active# length mark X)
     (mark# U52(X1, X2) -> mark# X1, mark# length X -> length# mark X)
     (mark# U52(X1, X2) -> mark# X1, mark# U71(X1, X2) -> mark# X1)
     (mark# U52(X1, X2) -> mark# X1, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# U52(X1, X2) -> mark# X1, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# U52(X1, X2) -> mark# X1, mark# nil() -> active# nil())
     (mark# U52(X1, X2) -> mark# X1, mark# U81 X -> mark# X)
     (mark# U52(X1, X2) -> mark# X1, mark# U81 X -> active# U81 mark X)
     (mark# U52(X1, X2) -> mark# X1, mark# U81 X -> U81# mark X)
     (mark# U52(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1)
     (mark# U52(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2)
     (mark# U52(X1, X2) -> mark# X1, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# U52(X1, X2) -> mark# X1, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# U52(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# U52(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# U52(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# U52(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1)
     (mark# U52(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# U52(X1, X2) -> mark# X1, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# U52(X1, X2) -> mark# X1, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# U52(X1, X2) -> mark# X1, mark# isNatKind X -> active# isNatKind X)
     (mark# U42(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1)
     (mark# U42(X1, X2) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# U42(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# U42(X1, X2) -> mark# X1, mark# 0() -> active# 0())
     (mark# U42(X1, X2) -> mark# X1, mark# zeros() -> active# zeros())
     (mark# U42(X1, X2) -> mark# X1, mark# U12 X -> mark# X)
     (mark# U42(X1, X2) -> mark# X1, mark# U12 X -> active# U12 mark X)
     (mark# U42(X1, X2) -> mark# X1, mark# U12 X -> U12# mark X)
     (mark# U42(X1, X2) -> mark# X1, mark# isNatList X -> active# isNatList X)
     (mark# U42(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1)
     (mark# U42(X1, X2) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# U42(X1, X2) -> mark# X1, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# U42(X1, X2) -> mark# X1, mark# tt() -> active# tt())
     (mark# U42(X1, X2) -> mark# X1, mark# U22 X -> mark# X)
     (mark# U42(X1, X2) -> mark# X1, mark# U22 X -> active# U22 mark X)
     (mark# U42(X1, X2) -> mark# X1, mark# U22 X -> U22# mark X)
     (mark# U42(X1, X2) -> mark# X1, mark# isNat X -> active# isNat X)
     (mark# U42(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1)
     (mark# U42(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# U42(X1, X2) -> mark# X1, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# U42(X1, X2) -> mark# X1, mark# U32 X -> mark# X)
     (mark# U42(X1, X2) -> mark# X1, mark# U32 X -> active# U32 mark X)
     (mark# U42(X1, X2) -> mark# X1, mark# U32 X -> U32# mark X)
     (mark# U42(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1)
     (mark# U42(X1, X2) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# U42(X1, X2) -> mark# X1, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# U42(X1, X2) -> mark# X1, mark# U42(X1, X2) -> mark# X1)
     (mark# U42(X1, X2) -> mark# X1, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# U42(X1, X2) -> mark# X1, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# U42(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# U42(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# U42(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# U42(X1, X2) -> mark# X1, mark# U43 X -> mark# X)
     (mark# U42(X1, X2) -> mark# X1, mark# U43 X -> active# U43 mark X)
     (mark# U42(X1, X2) -> mark# X1, mark# U43 X -> U43# mark X)
     (mark# U42(X1, X2) -> mark# X1, mark# isNatIList X -> active# isNatIList X)
     (mark# U42(X1, X2) -> mark# X1, mark# U52(X1, X2) -> mark# X1)
     (mark# U42(X1, X2) -> mark# X1, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# U42(X1, X2) -> mark# X1, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# U42(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# U42(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# U42(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# U42(X1, X2) -> mark# X1, mark# U53 X -> mark# X)
     (mark# U42(X1, X2) -> mark# X1, mark# U53 X -> active# U53 mark X)
     (mark# U42(X1, X2) -> mark# X1, mark# U53 X -> U53# mark X)
     (mark# U42(X1, X2) -> mark# X1, mark# U62(X1, X2) -> mark# X1)
     (mark# U42(X1, X2) -> mark# X1, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# U42(X1, X2) -> mark# X1, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# U42(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# U42(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# U42(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# U42(X1, X2) -> mark# X1, mark# U63 X -> mark# X)
     (mark# U42(X1, X2) -> mark# X1, mark# U63 X -> active# U63 mark X)
     (mark# U42(X1, X2) -> mark# X1, mark# U63 X -> U63# mark X)
     (mark# U42(X1, X2) -> mark# X1, mark# s X -> mark# X)
     (mark# U42(X1, X2) -> mark# X1, mark# s X -> active# s mark X)
     (mark# U42(X1, X2) -> mark# X1, mark# s X -> s# mark X)
     (mark# U42(X1, X2) -> mark# X1, mark# length X -> mark# X)
     (mark# U42(X1, X2) -> mark# X1, mark# length X -> active# length mark X)
     (mark# U42(X1, X2) -> mark# X1, mark# length X -> length# mark X)
     (mark# U42(X1, X2) -> mark# X1, mark# U71(X1, X2) -> mark# X1)
     (mark# U42(X1, X2) -> mark# X1, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# U42(X1, X2) -> mark# X1, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# U42(X1, X2) -> mark# X1, mark# nil() -> active# nil())
     (mark# U42(X1, X2) -> mark# X1, mark# U81 X -> mark# X)
     (mark# U42(X1, X2) -> mark# X1, mark# U81 X -> active# U81 mark X)
     (mark# U42(X1, X2) -> mark# X1, mark# U81 X -> U81# mark X)
     (mark# U42(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1)
     (mark# U42(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2)
     (mark# U42(X1, X2) -> mark# X1, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# U42(X1, X2) -> mark# X1, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# U42(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# U42(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# U42(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# U42(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1)
     (mark# U42(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# U42(X1, X2) -> mark# X1, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# U42(X1, X2) -> mark# X1, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# U42(X1, X2) -> mark# X1, mark# isNatKind X -> active# isNatKind X)
     (mark# U21(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1)
     (mark# U21(X1, X2) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# U21(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# U21(X1, X2) -> mark# X1, mark# 0() -> active# 0())
     (mark# U21(X1, X2) -> mark# X1, mark# zeros() -> active# zeros())
     (mark# U21(X1, X2) -> mark# X1, mark# U12 X -> mark# X)
     (mark# U21(X1, X2) -> mark# X1, mark# U12 X -> active# U12 mark X)
     (mark# U21(X1, X2) -> mark# X1, mark# U12 X -> U12# mark X)
     (mark# U21(X1, X2) -> mark# X1, mark# isNatList X -> active# isNatList X)
     (mark# U21(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1)
     (mark# U21(X1, X2) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# U21(X1, X2) -> mark# X1, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# U21(X1, X2) -> mark# X1, mark# tt() -> active# tt())
     (mark# U21(X1, X2) -> mark# X1, mark# U22 X -> mark# X)
     (mark# U21(X1, X2) -> mark# X1, mark# U22 X -> active# U22 mark X)
     (mark# U21(X1, X2) -> mark# X1, mark# U22 X -> U22# mark X)
     (mark# U21(X1, X2) -> mark# X1, mark# isNat X -> active# isNat X)
     (mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1)
     (mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# U21(X1, X2) -> mark# X1, mark# U32 X -> mark# X)
     (mark# U21(X1, X2) -> mark# X1, mark# U32 X -> active# U32 mark X)
     (mark# U21(X1, X2) -> mark# X1, mark# U32 X -> U32# mark X)
     (mark# U21(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1)
     (mark# U21(X1, X2) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# U21(X1, X2) -> mark# X1, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# U21(X1, X2) -> mark# X1, mark# U42(X1, X2) -> mark# X1)
     (mark# U21(X1, X2) -> mark# X1, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# U21(X1, X2) -> mark# X1, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# U21(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# U21(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# U21(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# U21(X1, X2) -> mark# X1, mark# U43 X -> mark# X)
     (mark# U21(X1, X2) -> mark# X1, mark# U43 X -> active# U43 mark X)
     (mark# U21(X1, X2) -> mark# X1, mark# U43 X -> U43# mark X)
     (mark# U21(X1, X2) -> mark# X1, mark# isNatIList X -> active# isNatIList X)
     (mark# U21(X1, X2) -> mark# X1, mark# U52(X1, X2) -> mark# X1)
     (mark# U21(X1, X2) -> mark# X1, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# U21(X1, X2) -> mark# X1, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# U21(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# U21(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# U21(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# U21(X1, X2) -> mark# X1, mark# U53 X -> mark# X)
     (mark# U21(X1, X2) -> mark# X1, mark# U53 X -> active# U53 mark X)
     (mark# U21(X1, X2) -> mark# X1, mark# U53 X -> U53# mark X)
     (mark# U21(X1, X2) -> mark# X1, mark# U62(X1, X2) -> mark# X1)
     (mark# U21(X1, X2) -> mark# X1, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# U21(X1, X2) -> mark# X1, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# U21(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# U21(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# U21(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# U21(X1, X2) -> mark# X1, mark# U63 X -> mark# X)
     (mark# U21(X1, X2) -> mark# X1, mark# U63 X -> active# U63 mark X)
     (mark# U21(X1, X2) -> mark# X1, mark# U63 X -> U63# mark X)
     (mark# U21(X1, X2) -> mark# X1, mark# s X -> mark# X)
     (mark# U21(X1, X2) -> mark# X1, mark# s X -> active# s mark X)
     (mark# U21(X1, X2) -> mark# X1, mark# s X -> s# mark X)
     (mark# U21(X1, X2) -> mark# X1, mark# length X -> mark# X)
     (mark# U21(X1, X2) -> mark# X1, mark# length X -> active# length mark X)
     (mark# U21(X1, X2) -> mark# X1, mark# length X -> length# mark X)
     (mark# U21(X1, X2) -> mark# X1, mark# U71(X1, X2) -> mark# X1)
     (mark# U21(X1, X2) -> mark# X1, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# U21(X1, X2) -> mark# X1, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# U21(X1, X2) -> mark# X1, mark# nil() -> active# nil())
     (mark# U21(X1, X2) -> mark# X1, mark# U81 X -> mark# X)
     (mark# U21(X1, X2) -> mark# X1, mark# U81 X -> active# U81 mark X)
     (mark# U21(X1, X2) -> mark# X1, mark# U81 X -> U81# mark X)
     (mark# U21(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1)
     (mark# U21(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2)
     (mark# U21(X1, X2) -> mark# X1, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# U21(X1, X2) -> mark# X1, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# U21(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# U21(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# U21(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# U21(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1)
     (mark# U21(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# U21(X1, X2) -> mark# X1, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# U21(X1, X2) -> mark# X1, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# U21(X1, X2) -> mark# X1, mark# isNatKind X -> active# isNatKind X)
     (mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1)
     (mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# cons(X1, X2) -> mark# X1, mark# 0() -> active# 0())
     (mark# cons(X1, X2) -> mark# X1, mark# zeros() -> active# zeros())
     (mark# cons(X1, X2) -> mark# X1, mark# U12 X -> mark# X)
     (mark# cons(X1, X2) -> mark# X1, mark# U12 X -> active# U12 mark X)
     (mark# cons(X1, X2) -> mark# X1, mark# U12 X -> U12# mark X)
     (mark# cons(X1, X2) -> mark# X1, mark# isNatList X -> active# isNatList X)
     (mark# cons(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1)
     (mark# cons(X1, X2) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# cons(X1, X2) -> mark# X1, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# cons(X1, X2) -> mark# X1, mark# tt() -> active# tt())
     (mark# cons(X1, X2) -> mark# X1, mark# U22 X -> mark# X)
     (mark# cons(X1, X2) -> mark# X1, mark# U22 X -> active# U22 mark X)
     (mark# cons(X1, X2) -> mark# X1, mark# U22 X -> U22# mark X)
     (mark# cons(X1, X2) -> mark# X1, mark# isNat X -> active# isNat X)
     (mark# cons(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1)
     (mark# cons(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# cons(X1, X2) -> mark# X1, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# cons(X1, X2) -> mark# X1, mark# U32 X -> mark# X)
     (mark# cons(X1, X2) -> mark# X1, mark# U32 X -> active# U32 mark X)
     (mark# cons(X1, X2) -> mark# X1, mark# U32 X -> U32# mark X)
     (mark# cons(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1)
     (mark# cons(X1, X2) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# cons(X1, X2) -> mark# X1, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# cons(X1, X2) -> mark# X1, mark# U42(X1, X2) -> mark# X1)
     (mark# cons(X1, X2) -> mark# X1, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# cons(X1, X2) -> mark# X1, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# cons(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# cons(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# cons(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# cons(X1, X2) -> mark# X1, mark# U43 X -> mark# X)
     (mark# cons(X1, X2) -> mark# X1, mark# U43 X -> active# U43 mark X)
     (mark# cons(X1, X2) -> mark# X1, mark# U43 X -> U43# mark X)
     (mark# cons(X1, X2) -> mark# X1, mark# isNatIList X -> active# isNatIList X)
     (mark# cons(X1, X2) -> mark# X1, mark# U52(X1, X2) -> mark# X1)
     (mark# cons(X1, X2) -> mark# X1, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# cons(X1, X2) -> mark# X1, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# cons(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# cons(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# cons(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# cons(X1, X2) -> mark# X1, mark# U53 X -> mark# X)
     (mark# cons(X1, X2) -> mark# X1, mark# U53 X -> active# U53 mark X)
     (mark# cons(X1, X2) -> mark# X1, mark# U53 X -> U53# mark X)
     (mark# cons(X1, X2) -> mark# X1, mark# U62(X1, X2) -> mark# X1)
     (mark# cons(X1, X2) -> mark# X1, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# cons(X1, X2) -> mark# X1, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# cons(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# cons(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# cons(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# cons(X1, X2) -> mark# X1, mark# U63 X -> mark# X)
     (mark# cons(X1, X2) -> mark# X1, mark# U63 X -> active# U63 mark X)
     (mark# cons(X1, X2) -> mark# X1, mark# U63 X -> U63# mark X)
     (mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X)
     (mark# cons(X1, X2) -> mark# X1, mark# s X -> active# s mark X)
     (mark# cons(X1, X2) -> mark# X1, mark# s X -> s# mark X)
     (mark# cons(X1, X2) -> mark# X1, mark# length X -> mark# X)
     (mark# cons(X1, X2) -> mark# X1, mark# length X -> active# length mark X)
     (mark# cons(X1, X2) -> mark# X1, mark# length X -> length# mark X)
     (mark# cons(X1, X2) -> mark# X1, mark# U71(X1, X2) -> mark# X1)
     (mark# cons(X1, X2) -> mark# X1, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# cons(X1, X2) -> mark# X1, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# cons(X1, X2) -> mark# X1, mark# nil() -> active# nil())
     (mark# cons(X1, X2) -> mark# X1, mark# U81 X -> mark# X)
     (mark# cons(X1, X2) -> mark# X1, mark# U81 X -> active# U81 mark X)
     (mark# cons(X1, X2) -> mark# X1, mark# U81 X -> U81# mark X)
     (mark# cons(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1)
     (mark# cons(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2)
     (mark# cons(X1, X2) -> mark# X1, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# cons(X1, X2) -> mark# X1, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# cons(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# cons(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# cons(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# cons(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1)
     (mark# cons(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# cons(X1, X2) -> mark# X1, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# cons(X1, X2) -> mark# X1, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# cons(X1, X2) -> mark# X1, mark# isNatKind X -> active# isNatKind X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# cons(X1, X2) -> mark# X1)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# 0() -> active# 0())
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# zeros() -> active# zeros())
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U12 X -> mark# X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U12 X -> active# U12 mark X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U12 X -> U12# mark X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# isNatList X -> active# isNatList X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U11(X1, X2) -> mark# X1)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# tt() -> active# tt())
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U22 X -> mark# X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U22 X -> active# U22 mark X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U22 X -> U22# mark X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# isNat X -> active# isNat X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U21(X1, X2) -> mark# X1)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U32 X -> mark# X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U32 X -> active# U32 mark X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U32 X -> U32# mark X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U31(X1, X2) -> mark# X1)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U42(X1, X2) -> mark# X1)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U41(X1, X2, X3) -> mark# X1)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U43 X -> mark# X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U43 X -> active# U43 mark X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U43 X -> U43# mark X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# isNatIList X -> active# isNatIList X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U52(X1, X2) -> mark# X1)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U51(X1, X2, X3) -> mark# X1)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U53 X -> mark# X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U53 X -> active# U53 mark X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U53 X -> U53# mark X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U62(X1, X2) -> mark# X1)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U61(X1, X2, X3) -> mark# X1)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U63 X -> mark# X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U63 X -> active# U63 mark X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U63 X -> U63# mark X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# s X -> mark# X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# s X -> active# s mark X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# s X -> s# mark X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# length X -> mark# X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# length X -> active# length mark X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# length X -> length# mark X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U71(X1, X2) -> mark# X1)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# nil() -> active# nil())
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U81 X -> mark# X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U81 X -> active# U81 mark X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U81 X -> U81# mark X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# take(X1, X2) -> mark# X1)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# take(X1, X2) -> mark# X2)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# and(X1, X2) -> mark# X1)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL), mark# isNatKind X -> active# isNatKind X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# cons(X1, X2) -> mark# X1)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# 0() -> active# 0())
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# zeros() -> active# zeros())
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U12 X -> mark# X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U12 X -> active# U12 mark X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U12 X -> U12# mark X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# isNatList X -> active# isNatList X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U11(X1, X2) -> mark# X1)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# tt() -> active# tt())
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U22 X -> mark# X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U22 X -> active# U22 mark X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U22 X -> U22# mark X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# isNat X -> active# isNat X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U21(X1, X2) -> mark# X1)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U32 X -> mark# X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U32 X -> active# U32 mark X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U32 X -> U32# mark X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U31(X1, X2) -> mark# X1)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U42(X1, X2) -> mark# X1)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U41(X1, X2, X3) -> mark# X1)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U43 X -> mark# X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U43 X -> active# U43 mark X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U43 X -> U43# mark X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# isNatIList X -> active# isNatIList X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U52(X1, X2) -> mark# X1)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U51(X1, X2, X3) -> mark# X1)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U53 X -> mark# X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U53 X -> active# U53 mark X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U53 X -> U53# mark X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U62(X1, X2) -> mark# X1)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U61(X1, X2, X3) -> mark# X1)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U63 X -> mark# X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U63 X -> active# U63 mark X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U63 X -> U63# mark X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# s X -> mark# X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# s X -> active# s mark X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# s X -> s# mark X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# length X -> mark# X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# length X -> active# length mark X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# length X -> length# mark X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U71(X1, X2) -> mark# X1)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# nil() -> active# nil())
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U81 X -> mark# X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U81 X -> active# U81 mark X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U81 X -> U81# mark X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# take(X1, X2) -> mark# X1)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# take(X1, X2) -> mark# X2)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# and(X1, X2) -> mark# X1)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# and(X1, X2) -> and#(mark X1, X2))
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# isNatIListKind X -> active# isNatIListKind X)
     (active# U62(tt(), V2) -> mark# U63 isNatIList V2, mark# isNatKind X -> active# isNatKind X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# cons(X1, X2) -> mark# X1)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# 0() -> active# 0())
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# zeros() -> active# zeros())
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U12 X -> mark# X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U12 X -> active# U12 mark X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U12 X -> U12# mark X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# isNatList X -> active# isNatList X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U11(X1, X2) -> mark# X1)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# tt() -> active# tt())
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U22 X -> mark# X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U22 X -> active# U22 mark X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U22 X -> U22# mark X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# isNat X -> active# isNat X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U21(X1, X2) -> mark# X1)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U32 X -> mark# X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U32 X -> active# U32 mark X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U32 X -> U32# mark X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U31(X1, X2) -> mark# X1)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U42(X1, X2) -> mark# X1)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U41(X1, X2, X3) -> mark# X1)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U43 X -> mark# X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U43 X -> active# U43 mark X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U43 X -> U43# mark X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# isNatIList X -> active# isNatIList X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U52(X1, X2) -> mark# X1)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U51(X1, X2, X3) -> mark# X1)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U53 X -> mark# X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U53 X -> active# U53 mark X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U53 X -> U53# mark X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U62(X1, X2) -> mark# X1)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U61(X1, X2, X3) -> mark# X1)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U63 X -> mark# X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U63 X -> active# U63 mark X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U63 X -> U63# mark X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# s X -> mark# X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# s X -> active# s mark X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# s X -> s# mark X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# length X -> mark# X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# length X -> active# length mark X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# length X -> length# mark X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U71(X1, X2) -> mark# X1)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# nil() -> active# nil())
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U81 X -> mark# X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U81 X -> active# U81 mark X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U81 X -> U81# mark X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# take(X1, X2) -> mark# X1)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# take(X1, X2) -> mark# X2)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# and(X1, X2) -> mark# X1)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# and(X1, X2) -> and#(mark X1, X2))
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# isNatIListKind X -> active# isNatIListKind X)
     (active# U42(tt(), V2) -> mark# U43 isNatIList V2, mark# isNatKind X -> active# isNatKind X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# cons(X1, X2) -> mark# X1)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# 0() -> active# 0())
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# zeros() -> active# zeros())
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U12 X -> mark# X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U12 X -> active# U12 mark X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U12 X -> U12# mark X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# isNatList X -> active# isNatList X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U11(X1, X2) -> mark# X1)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# tt() -> active# tt())
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U22 X -> mark# X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U22 X -> active# U22 mark X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U22 X -> U22# mark X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# isNat X -> active# isNat X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U21(X1, X2) -> mark# X1)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U32 X -> mark# X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U32 X -> active# U32 mark X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U32 X -> U32# mark X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U31(X1, X2) -> mark# X1)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U42(X1, X2) -> mark# X1)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U41(X1, X2, X3) -> mark# X1)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U43 X -> mark# X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U43 X -> active# U43 mark X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U43 X -> U43# mark X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# isNatIList X -> active# isNatIList X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U52(X1, X2) -> mark# X1)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U51(X1, X2, X3) -> mark# X1)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U53 X -> mark# X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U53 X -> active# U53 mark X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U53 X -> U53# mark X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U62(X1, X2) -> mark# X1)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U61(X1, X2, X3) -> mark# X1)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U63 X -> mark# X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U63 X -> active# U63 mark X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U63 X -> U63# mark X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# s X -> mark# X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# s X -> active# s mark X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# s X -> s# mark X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# length X -> mark# X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# length X -> active# length mark X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# length X -> length# mark X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U71(X1, X2) -> mark# X1)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# nil() -> active# nil())
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U81 X -> mark# X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U81 X -> active# U81 mark X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U81 X -> U81# mark X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# take(X1, X2) -> mark# X1)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# take(X1, X2) -> mark# X2)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# and(X1, X2) -> mark# X1)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# and(X1, X2) -> and#(mark X1, X2))
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# isNatIListKind X -> active# isNatIListKind X)
     (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# isNatKind X -> active# isNatKind X)
     (mark# U81 X -> active# U81 mark X, active# zeros() -> mark# cons(0(), zeros()))
     (mark# U81 X -> active# U81 mark X, active# zeros() -> cons#(0(), zeros()))
     (mark# U81 X -> active# U81 mark X, active# U12 tt() -> mark# tt())
     (mark# U81 X -> active# U81 mark X, active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U81 X -> active# U81 mark X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U81 X -> active# U81 mark X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U81 X -> active# U81 mark X, active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U81 X -> active# U81 mark X, active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# U81 X -> active# U81 mark X, active# isNatList nil() -> mark# tt())
     (mark# U81 X -> active# U81 mark X, active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U81 X -> active# U81 mark X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U81 X -> active# U81 mark X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U81 X -> active# U81 mark X, active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# U81 X -> active# U81 mark X, active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# U81 X -> active# U81 mark X, active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# U81 X -> active# U81 mark X, active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# U81 X -> active# U81 mark X, active# U11(tt(), V1) -> isNatList# V1)
     (mark# U81 X -> active# U81 mark X, active# U22 tt() -> mark# tt())
     (mark# U81 X -> active# U81 mark X, active# isNat 0() -> mark# tt())
     (mark# U81 X -> active# U81 mark X, active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# U81 X -> active# U81 mark X, active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# U81 X -> active# U81 mark X, active# isNat s V1 -> isNatKind# V1)
     (mark# U81 X -> active# U81 mark X, active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# U81 X -> active# U81 mark X, active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# U81 X -> active# U81 mark X, active# isNat length V1 -> isNatIListKind# V1)
     (mark# U81 X -> active# U81 mark X, active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# U81 X -> active# U81 mark X, active# U21(tt(), V1) -> U22# isNat V1)
     (mark# U81 X -> active# U81 mark X, active# U21(tt(), V1) -> isNat# V1)
     (mark# U81 X -> active# U81 mark X, active# U32 tt() -> mark# tt())
     (mark# U81 X -> active# U81 mark X, active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# U81 X -> active# U81 mark X, active# U31(tt(), V) -> isNatList# V)
     (mark# U81 X -> active# U81 mark X, active# U31(tt(), V) -> U32# isNatList V)
     (mark# U81 X -> active# U81 mark X, active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# U81 X -> active# U81 mark X, active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# U81 X -> active# U81 mark X, active# U42(tt(), V2) -> isNatIList# V2)
     (mark# U81 X -> active# U81 mark X, active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# U81 X -> active# U81 mark X, active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# U81 X -> active# U81 mark X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# U81 X -> active# U81 mark X, active# U43 tt() -> mark# tt())
     (mark# U81 X -> active# U81 mark X, active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# U81 X -> active# U81 mark X, active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# U81 X -> active# U81 mark X, active# isNatIList V -> isNatIListKind# V)
     (mark# U81 X -> active# U81 mark X, active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U81 X -> active# U81 mark X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U81 X -> active# U81 mark X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U81 X -> active# U81 mark X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U81 X -> active# U81 mark X, active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# U81 X -> active# U81 mark X, active# isNatIList zeros() -> mark# tt())
     (mark# U81 X -> active# U81 mark X, active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# U81 X -> active# U81 mark X, active# U52(tt(), V2) -> isNatList# V2)
     (mark# U81 X -> active# U81 mark X, active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# U81 X -> active# U81 mark X, active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# U81 X -> active# U81 mark X, active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# U81 X -> active# U81 mark X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# U81 X -> active# U81 mark X, active# U53 tt() -> mark# tt())
     (mark# U81 X -> active# U81 mark X, active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# U81 X -> active# U81 mark X, active# U62(tt(), V2) -> isNatIList# V2)
     (mark# U81 X -> active# U81 mark X, active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# U81 X -> active# U81 mark X, active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# U81 X -> active# U81 mark X, active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# U81 X -> active# U81 mark X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# U81 X -> active# U81 mark X, active# U63 tt() -> mark# tt())
     (mark# U81 X -> active# U81 mark X, active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U81 X -> active# U81 mark X, active# length cons(N, L) -> isNatList# L)
     (mark# U81 X -> active# U81 mark X, active# length cons(N, L) -> isNat# N)
     (mark# U81 X -> active# U81 mark X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U81 X -> active# U81 mark X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# U81 X -> active# U81 mark X, active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# U81 X -> active# U81 mark X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# U81 X -> active# U81 mark X, active# length cons(N, L) -> isNatIListKind# L)
     (mark# U81 X -> active# U81 mark X, active# length cons(N, L) -> isNatKind# N)
     (mark# U81 X -> active# U81 mark X, active# length nil() -> mark# 0())
     (mark# U81 X -> active# U81 mark X, active# U71(tt(), L) -> mark# s length L)
     (mark# U81 X -> active# U81 mark X, active# U71(tt(), L) -> s# length L)
     (mark# U81 X -> active# U81 mark X, active# U71(tt(), L) -> length# L)
     (mark# U81 X -> active# U81 mark X, active# U81 tt() -> mark# nil())
     (mark# U81 X -> active# U81 mark X, active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# U81 X -> active# U81 mark X, active# take(0(), IL) -> isNatIList# IL)
     (mark# U81 X -> active# U81 mark X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# U81 X -> active# U81 mark X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U81 X -> active# U81 mark X, active# take(0(), IL) -> isNatIListKind# IL)
     (mark# U81 X -> active# U81 mark X, active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U81 X -> active# U81 mark X, active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# U81 X -> active# U81 mark X, active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# U81 X -> active# U81 mark X, active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# U81 X -> active# U81 mark X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U81 X -> active# U81 mark X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# U81 X -> active# U81 mark X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# U81 X -> active# U81 mark X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U81 X -> active# U81 mark X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# U81 X -> active# U81 mark X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# U81 X -> active# U81 mark X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# U81 X -> active# U81 mark X, active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# U81 X -> active# U81 mark X, active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# U81 X -> active# U81 mark X, active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# U81 X -> active# U81 mark X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# U81 X -> active# U81 mark X, active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# U81 X -> active# U81 mark X, active# and(tt(), X) -> mark# X)
     (mark# U81 X -> active# U81 mark X, active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U81 X -> active# U81 mark X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U81 X -> active# U81 mark X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# U81 X -> active# U81 mark X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# U81 X -> active# U81 mark X, active# isNatIListKind zeros() -> mark# tt())
     (mark# U81 X -> active# U81 mark X, active# isNatIListKind nil() -> mark# tt())
     (mark# U81 X -> active# U81 mark X, active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U81 X -> active# U81 mark X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U81 X -> active# U81 mark X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# U81 X -> active# U81 mark X, active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# U81 X -> active# U81 mark X, active# isNatKind 0() -> mark# tt())
     (mark# U81 X -> active# U81 mark X, active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# U81 X -> active# U81 mark X, active# isNatKind s V1 -> isNatKind# V1)
     (mark# U81 X -> active# U81 mark X, active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# U81 X -> active# U81 mark X, active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# s X -> active# s mark X, active# zeros() -> mark# cons(0(), zeros()))
     (mark# s X -> active# s mark X, active# zeros() -> cons#(0(), zeros()))
     (mark# s X -> active# s mark X, active# U12 tt() -> mark# tt())
     (mark# s X -> active# s mark X, active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# s X -> active# s mark X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# s X -> active# s mark X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# s X -> active# s mark X, active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# s X -> active# s mark X, active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# s X -> active# s mark X, active# isNatList nil() -> mark# tt())
     (mark# s X -> active# s mark X, active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# s X -> active# s mark X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# s X -> active# s mark X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# s X -> active# s mark X, active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# s X -> active# s mark X, active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# s X -> active# s mark X, active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# s X -> active# s mark X, active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# s X -> active# s mark X, active# U11(tt(), V1) -> isNatList# V1)
     (mark# s X -> active# s mark X, active# U22 tt() -> mark# tt())
     (mark# s X -> active# s mark X, active# isNat 0() -> mark# tt())
     (mark# s X -> active# s mark X, active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# s X -> active# s mark X, active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# s X -> active# s mark X, active# isNat s V1 -> isNatKind# V1)
     (mark# s X -> active# s mark X, active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# s X -> active# s mark X, active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# s X -> active# s mark X, active# isNat length V1 -> isNatIListKind# V1)
     (mark# s X -> active# s mark X, active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# s X -> active# s mark X, active# U21(tt(), V1) -> U22# isNat V1)
     (mark# s X -> active# s mark X, active# U21(tt(), V1) -> isNat# V1)
     (mark# s X -> active# s mark X, active# U32 tt() -> mark# tt())
     (mark# s X -> active# s mark X, active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# s X -> active# s mark X, active# U31(tt(), V) -> isNatList# V)
     (mark# s X -> active# s mark X, active# U31(tt(), V) -> U32# isNatList V)
     (mark# s X -> active# s mark X, active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# s X -> active# s mark X, active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# s X -> active# s mark X, active# U42(tt(), V2) -> isNatIList# V2)
     (mark# s X -> active# s mark X, active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# s X -> active# s mark X, active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# s X -> active# s mark X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# s X -> active# s mark X, active# U43 tt() -> mark# tt())
     (mark# s X -> active# s mark X, active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# s X -> active# s mark X, active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# s X -> active# s mark X, active# isNatIList V -> isNatIListKind# V)
     (mark# s X -> active# s mark X, active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# s X -> active# s mark X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# s X -> active# s mark X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# s X -> active# s mark X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# s X -> active# s mark X, active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# s X -> active# s mark X, active# isNatIList zeros() -> mark# tt())
     (mark# s X -> active# s mark X, active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# s X -> active# s mark X, active# U52(tt(), V2) -> isNatList# V2)
     (mark# s X -> active# s mark X, active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# s X -> active# s mark X, active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# s X -> active# s mark X, active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# s X -> active# s mark X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# s X -> active# s mark X, active# U53 tt() -> mark# tt())
     (mark# s X -> active# s mark X, active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# s X -> active# s mark X, active# U62(tt(), V2) -> isNatIList# V2)
     (mark# s X -> active# s mark X, active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# s X -> active# s mark X, active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# s X -> active# s mark X, active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# s X -> active# s mark X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# s X -> active# s mark X, active# U63 tt() -> mark# tt())
     (mark# s X -> active# s mark X, active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# s X -> active# s mark X, active# length cons(N, L) -> isNatList# L)
     (mark# s X -> active# s mark X, active# length cons(N, L) -> isNat# N)
     (mark# s X -> active# s mark X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# s X -> active# s mark X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# s X -> active# s mark X, active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# s X -> active# s mark X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# s X -> active# s mark X, active# length cons(N, L) -> isNatIListKind# L)
     (mark# s X -> active# s mark X, active# length cons(N, L) -> isNatKind# N)
     (mark# s X -> active# s mark X, active# length nil() -> mark# 0())
     (mark# s X -> active# s mark X, active# U71(tt(), L) -> mark# s length L)
     (mark# s X -> active# s mark X, active# U71(tt(), L) -> s# length L)
     (mark# s X -> active# s mark X, active# U71(tt(), L) -> length# L)
     (mark# s X -> active# s mark X, active# U81 tt() -> mark# nil())
     (mark# s X -> active# s mark X, active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# s X -> active# s mark X, active# take(0(), IL) -> isNatIList# IL)
     (mark# s X -> active# s mark X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# s X -> active# s mark X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# s X -> active# s mark X, active# take(0(), IL) -> isNatIListKind# IL)
     (mark# s X -> active# s mark X, active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# s X -> active# s mark X, active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# s X -> active# s mark X, active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# s X -> active# s mark X, active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# s X -> active# s mark X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# s X -> active# s mark X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# s X -> active# s mark X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# s X -> active# s mark X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# s X -> active# s mark X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# s X -> active# s mark X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# s X -> active# s mark X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# s X -> active# s mark X, active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# s X -> active# s mark X, active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# s X -> active# s mark X, active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# s X -> active# s mark X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# s X -> active# s mark X, active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# s X -> active# s mark X, active# and(tt(), X) -> mark# X)
     (mark# s X -> active# s mark X, active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# s X -> active# s mark X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# s X -> active# s mark X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# s X -> active# s mark X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# s X -> active# s mark X, active# isNatIListKind zeros() -> mark# tt())
     (mark# s X -> active# s mark X, active# isNatIListKind nil() -> mark# tt())
     (mark# s X -> active# s mark X, active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# s X -> active# s mark X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# s X -> active# s mark X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# s X -> active# s mark X, active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# s X -> active# s mark X, active# isNatKind 0() -> mark# tt())
     (mark# s X -> active# s mark X, active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# s X -> active# s mark X, active# isNatKind s V1 -> isNatKind# V1)
     (mark# s X -> active# s mark X, active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# s X -> active# s mark X, active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# U53 X -> active# U53 mark X, active# zeros() -> mark# cons(0(), zeros()))
     (mark# U53 X -> active# U53 mark X, active# zeros() -> cons#(0(), zeros()))
     (mark# U53 X -> active# U53 mark X, active# U12 tt() -> mark# tt())
     (mark# U53 X -> active# U53 mark X, active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U53 X -> active# U53 mark X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U53 X -> active# U53 mark X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U53 X -> active# U53 mark X, active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U53 X -> active# U53 mark X, active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# U53 X -> active# U53 mark X, active# isNatList nil() -> mark# tt())
     (mark# U53 X -> active# U53 mark X, active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U53 X -> active# U53 mark X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U53 X -> active# U53 mark X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U53 X -> active# U53 mark X, active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# U53 X -> active# U53 mark X, active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# U53 X -> active# U53 mark X, active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# U53 X -> active# U53 mark X, active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# U53 X -> active# U53 mark X, active# U11(tt(), V1) -> isNatList# V1)
     (mark# U53 X -> active# U53 mark X, active# U22 tt() -> mark# tt())
     (mark# U53 X -> active# U53 mark X, active# isNat 0() -> mark# tt())
     (mark# U53 X -> active# U53 mark X, active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# U53 X -> active# U53 mark X, active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# U53 X -> active# U53 mark X, active# isNat s V1 -> isNatKind# V1)
     (mark# U53 X -> active# U53 mark X, active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# U53 X -> active# U53 mark X, active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# U53 X -> active# U53 mark X, active# isNat length V1 -> isNatIListKind# V1)
     (mark# U53 X -> active# U53 mark X, active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# U53 X -> active# U53 mark X, active# U21(tt(), V1) -> U22# isNat V1)
     (mark# U53 X -> active# U53 mark X, active# U21(tt(), V1) -> isNat# V1)
     (mark# U53 X -> active# U53 mark X, active# U32 tt() -> mark# tt())
     (mark# U53 X -> active# U53 mark X, active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# U53 X -> active# U53 mark X, active# U31(tt(), V) -> isNatList# V)
     (mark# U53 X -> active# U53 mark X, active# U31(tt(), V) -> U32# isNatList V)
     (mark# U53 X -> active# U53 mark X, active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# U53 X -> active# U53 mark X, active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# U53 X -> active# U53 mark X, active# U42(tt(), V2) -> isNatIList# V2)
     (mark# U53 X -> active# U53 mark X, active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# U53 X -> active# U53 mark X, active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# U53 X -> active# U53 mark X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# U53 X -> active# U53 mark X, active# U43 tt() -> mark# tt())
     (mark# U53 X -> active# U53 mark X, active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# U53 X -> active# U53 mark X, active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# U53 X -> active# U53 mark X, active# isNatIList V -> isNatIListKind# V)
     (mark# U53 X -> active# U53 mark X, active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U53 X -> active# U53 mark X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U53 X -> active# U53 mark X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U53 X -> active# U53 mark X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U53 X -> active# U53 mark X, active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# U53 X -> active# U53 mark X, active# isNatIList zeros() -> mark# tt())
     (mark# U53 X -> active# U53 mark X, active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# U53 X -> active# U53 mark X, active# U52(tt(), V2) -> isNatList# V2)
     (mark# U53 X -> active# U53 mark X, active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# U53 X -> active# U53 mark X, active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# U53 X -> active# U53 mark X, active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# U53 X -> active# U53 mark X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# U53 X -> active# U53 mark X, active# U53 tt() -> mark# tt())
     (mark# U53 X -> active# U53 mark X, active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# U53 X -> active# U53 mark X, active# U62(tt(), V2) -> isNatIList# V2)
     (mark# U53 X -> active# U53 mark X, active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# U53 X -> active# U53 mark X, active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# U53 X -> active# U53 mark X, active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# U53 X -> active# U53 mark X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# U53 X -> active# U53 mark X, active# U63 tt() -> mark# tt())
     (mark# U53 X -> active# U53 mark X, active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U53 X -> active# U53 mark X, active# length cons(N, L) -> isNatList# L)
     (mark# U53 X -> active# U53 mark X, active# length cons(N, L) -> isNat# N)
     (mark# U53 X -> active# U53 mark X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U53 X -> active# U53 mark X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# U53 X -> active# U53 mark X, active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# U53 X -> active# U53 mark X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# U53 X -> active# U53 mark X, active# length cons(N, L) -> isNatIListKind# L)
     (mark# U53 X -> active# U53 mark X, active# length cons(N, L) -> isNatKind# N)
     (mark# U53 X -> active# U53 mark X, active# length nil() -> mark# 0())
     (mark# U53 X -> active# U53 mark X, active# U71(tt(), L) -> mark# s length L)
     (mark# U53 X -> active# U53 mark X, active# U71(tt(), L) -> s# length L)
     (mark# U53 X -> active# U53 mark X, active# U71(tt(), L) -> length# L)
     (mark# U53 X -> active# U53 mark X, active# U81 tt() -> mark# nil())
     (mark# U53 X -> active# U53 mark X, active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# U53 X -> active# U53 mark X, active# take(0(), IL) -> isNatIList# IL)
     (mark# U53 X -> active# U53 mark X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# U53 X -> active# U53 mark X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U53 X -> active# U53 mark X, active# take(0(), IL) -> isNatIListKind# IL)
     (mark# U53 X -> active# U53 mark X, active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U53 X -> active# U53 mark X, active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# U53 X -> active# U53 mark X, active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# U53 X -> active# U53 mark X, active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# U53 X -> active# U53 mark X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U53 X -> active# U53 mark X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# U53 X -> active# U53 mark X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# U53 X -> active# U53 mark X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U53 X -> active# U53 mark X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# U53 X -> active# U53 mark X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# U53 X -> active# U53 mark X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# U53 X -> active# U53 mark X, active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# U53 X -> active# U53 mark X, active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# U53 X -> active# U53 mark X, active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# U53 X -> active# U53 mark X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# U53 X -> active# U53 mark X, active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# U53 X -> active# U53 mark X, active# and(tt(), X) -> mark# X)
     (mark# U53 X -> active# U53 mark X, active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U53 X -> active# U53 mark X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U53 X -> active# U53 mark X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# U53 X -> active# U53 mark X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# U53 X -> active# U53 mark X, active# isNatIListKind zeros() -> mark# tt())
     (mark# U53 X -> active# U53 mark X, active# isNatIListKind nil() -> mark# tt())
     (mark# U53 X -> active# U53 mark X, active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U53 X -> active# U53 mark X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U53 X -> active# U53 mark X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# U53 X -> active# U53 mark X, active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# U53 X -> active# U53 mark X, active# isNatKind 0() -> mark# tt())
     (mark# U53 X -> active# U53 mark X, active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# U53 X -> active# U53 mark X, active# isNatKind s V1 -> isNatKind# V1)
     (mark# U53 X -> active# U53 mark X, active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# U53 X -> active# U53 mark X, active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# U32 X -> active# U32 mark X, active# zeros() -> mark# cons(0(), zeros()))
     (mark# U32 X -> active# U32 mark X, active# zeros() -> cons#(0(), zeros()))
     (mark# U32 X -> active# U32 mark X, active# U12 tt() -> mark# tt())
     (mark# U32 X -> active# U32 mark X, active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U32 X -> active# U32 mark X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U32 X -> active# U32 mark X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U32 X -> active# U32 mark X, active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U32 X -> active# U32 mark X, active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# U32 X -> active# U32 mark X, active# isNatList nil() -> mark# tt())
     (mark# U32 X -> active# U32 mark X, active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U32 X -> active# U32 mark X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U32 X -> active# U32 mark X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U32 X -> active# U32 mark X, active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# U32 X -> active# U32 mark X, active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# U32 X -> active# U32 mark X, active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# U32 X -> active# U32 mark X, active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# U32 X -> active# U32 mark X, active# U11(tt(), V1) -> isNatList# V1)
     (mark# U32 X -> active# U32 mark X, active# U22 tt() -> mark# tt())
     (mark# U32 X -> active# U32 mark X, active# isNat 0() -> mark# tt())
     (mark# U32 X -> active# U32 mark X, active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# U32 X -> active# U32 mark X, active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# U32 X -> active# U32 mark X, active# isNat s V1 -> isNatKind# V1)
     (mark# U32 X -> active# U32 mark X, active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# U32 X -> active# U32 mark X, active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# U32 X -> active# U32 mark X, active# isNat length V1 -> isNatIListKind# V1)
     (mark# U32 X -> active# U32 mark X, active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# U32 X -> active# U32 mark X, active# U21(tt(), V1) -> U22# isNat V1)
     (mark# U32 X -> active# U32 mark X, active# U21(tt(), V1) -> isNat# V1)
     (mark# U32 X -> active# U32 mark X, active# U32 tt() -> mark# tt())
     (mark# U32 X -> active# U32 mark X, active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# U32 X -> active# U32 mark X, active# U31(tt(), V) -> isNatList# V)
     (mark# U32 X -> active# U32 mark X, active# U31(tt(), V) -> U32# isNatList V)
     (mark# U32 X -> active# U32 mark X, active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# U32 X -> active# U32 mark X, active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# U32 X -> active# U32 mark X, active# U42(tt(), V2) -> isNatIList# V2)
     (mark# U32 X -> active# U32 mark X, active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# U32 X -> active# U32 mark X, active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# U32 X -> active# U32 mark X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# U32 X -> active# U32 mark X, active# U43 tt() -> mark# tt())
     (mark# U32 X -> active# U32 mark X, active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# U32 X -> active# U32 mark X, active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# U32 X -> active# U32 mark X, active# isNatIList V -> isNatIListKind# V)
     (mark# U32 X -> active# U32 mark X, active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U32 X -> active# U32 mark X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U32 X -> active# U32 mark X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U32 X -> active# U32 mark X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U32 X -> active# U32 mark X, active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# U32 X -> active# U32 mark X, active# isNatIList zeros() -> mark# tt())
     (mark# U32 X -> active# U32 mark X, active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# U32 X -> active# U32 mark X, active# U52(tt(), V2) -> isNatList# V2)
     (mark# U32 X -> active# U32 mark X, active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# U32 X -> active# U32 mark X, active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# U32 X -> active# U32 mark X, active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# U32 X -> active# U32 mark X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# U32 X -> active# U32 mark X, active# U53 tt() -> mark# tt())
     (mark# U32 X -> active# U32 mark X, active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# U32 X -> active# U32 mark X, active# U62(tt(), V2) -> isNatIList# V2)
     (mark# U32 X -> active# U32 mark X, active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# U32 X -> active# U32 mark X, active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# U32 X -> active# U32 mark X, active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# U32 X -> active# U32 mark X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# U32 X -> active# U32 mark X, active# U63 tt() -> mark# tt())
     (mark# U32 X -> active# U32 mark X, active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U32 X -> active# U32 mark X, active# length cons(N, L) -> isNatList# L)
     (mark# U32 X -> active# U32 mark X, active# length cons(N, L) -> isNat# N)
     (mark# U32 X -> active# U32 mark X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U32 X -> active# U32 mark X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# U32 X -> active# U32 mark X, active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# U32 X -> active# U32 mark X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# U32 X -> active# U32 mark X, active# length cons(N, L) -> isNatIListKind# L)
     (mark# U32 X -> active# U32 mark X, active# length cons(N, L) -> isNatKind# N)
     (mark# U32 X -> active# U32 mark X, active# length nil() -> mark# 0())
     (mark# U32 X -> active# U32 mark X, active# U71(tt(), L) -> mark# s length L)
     (mark# U32 X -> active# U32 mark X, active# U71(tt(), L) -> s# length L)
     (mark# U32 X -> active# U32 mark X, active# U71(tt(), L) -> length# L)
     (mark# U32 X -> active# U32 mark X, active# U81 tt() -> mark# nil())
     (mark# U32 X -> active# U32 mark X, active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# U32 X -> active# U32 mark X, active# take(0(), IL) -> isNatIList# IL)
     (mark# U32 X -> active# U32 mark X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# U32 X -> active# U32 mark X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U32 X -> active# U32 mark X, active# take(0(), IL) -> isNatIListKind# IL)
     (mark# U32 X -> active# U32 mark X, active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U32 X -> active# U32 mark X, active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# U32 X -> active# U32 mark X, active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# U32 X -> active# U32 mark X, active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# U32 X -> active# U32 mark X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U32 X -> active# U32 mark X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# U32 X -> active# U32 mark X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# U32 X -> active# U32 mark X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U32 X -> active# U32 mark X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# U32 X -> active# U32 mark X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# U32 X -> active# U32 mark X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# U32 X -> active# U32 mark X, active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# U32 X -> active# U32 mark X, active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# U32 X -> active# U32 mark X, active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# U32 X -> active# U32 mark X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# U32 X -> active# U32 mark X, active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# U32 X -> active# U32 mark X, active# and(tt(), X) -> mark# X)
     (mark# U32 X -> active# U32 mark X, active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U32 X -> active# U32 mark X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U32 X -> active# U32 mark X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# U32 X -> active# U32 mark X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# U32 X -> active# U32 mark X, active# isNatIListKind zeros() -> mark# tt())
     (mark# U32 X -> active# U32 mark X, active# isNatIListKind nil() -> mark# tt())
     (mark# U32 X -> active# U32 mark X, active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U32 X -> active# U32 mark X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U32 X -> active# U32 mark X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# U32 X -> active# U32 mark X, active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# U32 X -> active# U32 mark X, active# isNatKind 0() -> mark# tt())
     (mark# U32 X -> active# U32 mark X, active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# U32 X -> active# U32 mark X, active# isNatKind s V1 -> isNatKind# V1)
     (mark# U32 X -> active# U32 mark X, active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# U32 X -> active# U32 mark X, active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# U12 X -> active# U12 mark X, active# zeros() -> mark# cons(0(), zeros()))
     (mark# U12 X -> active# U12 mark X, active# zeros() -> cons#(0(), zeros()))
     (mark# U12 X -> active# U12 mark X, active# U12 tt() -> mark# tt())
     (mark# U12 X -> active# U12 mark X, active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U12 X -> active# U12 mark X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U12 X -> active# U12 mark X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U12 X -> active# U12 mark X, active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U12 X -> active# U12 mark X, active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# U12 X -> active# U12 mark X, active# isNatList nil() -> mark# tt())
     (mark# U12 X -> active# U12 mark X, active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U12 X -> active# U12 mark X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U12 X -> active# U12 mark X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U12 X -> active# U12 mark X, active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# U12 X -> active# U12 mark X, active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# U12 X -> active# U12 mark X, active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# U12 X -> active# U12 mark X, active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# U12 X -> active# U12 mark X, active# U11(tt(), V1) -> isNatList# V1)
     (mark# U12 X -> active# U12 mark X, active# U22 tt() -> mark# tt())
     (mark# U12 X -> active# U12 mark X, active# isNat 0() -> mark# tt())
     (mark# U12 X -> active# U12 mark X, active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# U12 X -> active# U12 mark X, active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# U12 X -> active# U12 mark X, active# isNat s V1 -> isNatKind# V1)
     (mark# U12 X -> active# U12 mark X, active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# U12 X -> active# U12 mark X, active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# U12 X -> active# U12 mark X, active# isNat length V1 -> isNatIListKind# V1)
     (mark# U12 X -> active# U12 mark X, active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# U12 X -> active# U12 mark X, active# U21(tt(), V1) -> U22# isNat V1)
     (mark# U12 X -> active# U12 mark X, active# U21(tt(), V1) -> isNat# V1)
     (mark# U12 X -> active# U12 mark X, active# U32 tt() -> mark# tt())
     (mark# U12 X -> active# U12 mark X, active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# U12 X -> active# U12 mark X, active# U31(tt(), V) -> isNatList# V)
     (mark# U12 X -> active# U12 mark X, active# U31(tt(), V) -> U32# isNatList V)
     (mark# U12 X -> active# U12 mark X, active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# U12 X -> active# U12 mark X, active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# U12 X -> active# U12 mark X, active# U42(tt(), V2) -> isNatIList# V2)
     (mark# U12 X -> active# U12 mark X, active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# U12 X -> active# U12 mark X, active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# U12 X -> active# U12 mark X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# U12 X -> active# U12 mark X, active# U43 tt() -> mark# tt())
     (mark# U12 X -> active# U12 mark X, active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# U12 X -> active# U12 mark X, active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# U12 X -> active# U12 mark X, active# isNatIList V -> isNatIListKind# V)
     (mark# U12 X -> active# U12 mark X, active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U12 X -> active# U12 mark X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U12 X -> active# U12 mark X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U12 X -> active# U12 mark X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U12 X -> active# U12 mark X, active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# U12 X -> active# U12 mark X, active# isNatIList zeros() -> mark# tt())
     (mark# U12 X -> active# U12 mark X, active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# U12 X -> active# U12 mark X, active# U52(tt(), V2) -> isNatList# V2)
     (mark# U12 X -> active# U12 mark X, active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# U12 X -> active# U12 mark X, active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# U12 X -> active# U12 mark X, active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# U12 X -> active# U12 mark X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# U12 X -> active# U12 mark X, active# U53 tt() -> mark# tt())
     (mark# U12 X -> active# U12 mark X, active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# U12 X -> active# U12 mark X, active# U62(tt(), V2) -> isNatIList# V2)
     (mark# U12 X -> active# U12 mark X, active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# U12 X -> active# U12 mark X, active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# U12 X -> active# U12 mark X, active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# U12 X -> active# U12 mark X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# U12 X -> active# U12 mark X, active# U63 tt() -> mark# tt())
     (mark# U12 X -> active# U12 mark X, active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U12 X -> active# U12 mark X, active# length cons(N, L) -> isNatList# L)
     (mark# U12 X -> active# U12 mark X, active# length cons(N, L) -> isNat# N)
     (mark# U12 X -> active# U12 mark X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U12 X -> active# U12 mark X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# U12 X -> active# U12 mark X, active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# U12 X -> active# U12 mark X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# U12 X -> active# U12 mark X, active# length cons(N, L) -> isNatIListKind# L)
     (mark# U12 X -> active# U12 mark X, active# length cons(N, L) -> isNatKind# N)
     (mark# U12 X -> active# U12 mark X, active# length nil() -> mark# 0())
     (mark# U12 X -> active# U12 mark X, active# U71(tt(), L) -> mark# s length L)
     (mark# U12 X -> active# U12 mark X, active# U71(tt(), L) -> s# length L)
     (mark# U12 X -> active# U12 mark X, active# U71(tt(), L) -> length# L)
     (mark# U12 X -> active# U12 mark X, active# U81 tt() -> mark# nil())
     (mark# U12 X -> active# U12 mark X, active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# U12 X -> active# U12 mark X, active# take(0(), IL) -> isNatIList# IL)
     (mark# U12 X -> active# U12 mark X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# U12 X -> active# U12 mark X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U12 X -> active# U12 mark X, active# take(0(), IL) -> isNatIListKind# IL)
     (mark# U12 X -> active# U12 mark X, active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U12 X -> active# U12 mark X, active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# U12 X -> active# U12 mark X, active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# U12 X -> active# U12 mark X, active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# U12 X -> active# U12 mark X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U12 X -> active# U12 mark X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# U12 X -> active# U12 mark X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# U12 X -> active# U12 mark X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U12 X -> active# U12 mark X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# U12 X -> active# U12 mark X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# U12 X -> active# U12 mark X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# U12 X -> active# U12 mark X, active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# U12 X -> active# U12 mark X, active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# U12 X -> active# U12 mark X, active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# U12 X -> active# U12 mark X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# U12 X -> active# U12 mark X, active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# U12 X -> active# U12 mark X, active# and(tt(), X) -> mark# X)
     (mark# U12 X -> active# U12 mark X, active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U12 X -> active# U12 mark X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U12 X -> active# U12 mark X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# U12 X -> active# U12 mark X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# U12 X -> active# U12 mark X, active# isNatIListKind zeros() -> mark# tt())
     (mark# U12 X -> active# U12 mark X, active# isNatIListKind nil() -> mark# tt())
     (mark# U12 X -> active# U12 mark X, active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U12 X -> active# U12 mark X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U12 X -> active# U12 mark X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# U12 X -> active# U12 mark X, active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# U12 X -> active# U12 mark X, active# isNatKind 0() -> mark# tt())
     (mark# U12 X -> active# U12 mark X, active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# U12 X -> active# U12 mark X, active# isNatKind s V1 -> isNatKind# V1)
     (mark# U12 X -> active# U12 mark X, active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# U12 X -> active# U12 mark X, active# isNatKind length V1 -> isNatIListKind# V1)
     (active# isNat s V1 -> U21#(isNatKind V1, V1), U21#(X1, mark X2) -> U21#(X1, X2))
     (active# isNat s V1 -> U21#(isNatKind V1, V1), U21#(X1, active X2) -> U21#(X1, X2))
     (active# isNat s V1 -> U21#(isNatKind V1, V1), U21#(mark X1, X2) -> U21#(X1, X2))
     (active# isNat s V1 -> U21#(isNatKind V1, V1), U21#(active X1, X2) -> U21#(X1, X2))
     (active# length cons(N, L) -> isNatIListKind# L, isNatIListKind# mark X -> isNatIListKind# X)
     (active# length cons(N, L) -> isNatIListKind# L, isNatIListKind# active X -> isNatIListKind# X)
     (isNatKind# active X -> isNatKind# X, isNatKind# mark X -> isNatKind# X)
     (isNatKind# active X -> isNatKind# X, isNatKind# active X -> isNatKind# X)
     (isNatIListKind# active X -> isNatIListKind# X, isNatIListKind# mark X -> isNatIListKind# X)
     (isNatIListKind# active X -> isNatIListKind# X, isNatIListKind# active X -> isNatIListKind# X)
     (U81# active X -> U81# X, U81# mark X -> U81# X)
     (U81# active X -> U81# X, U81# active X -> U81# X)
     (length# active X -> length# X, length# mark X -> length# X)
     (length# active X -> length# X, length# active X -> length# X)
     (s# active X -> s# X, s# mark X -> s# X)
     (s# active X -> s# X, s# active X -> s# X)
     (U63# active X -> U63# X, U63# mark X -> U63# X)
     (U63# active X -> U63# X, U63# active X -> U63# X)
     (U53# active X -> U53# X, U53# mark X -> U53# X)
     (U53# active X -> U53# X, U53# active X -> U53# X)
     (isNatIList# active X -> isNatIList# X, isNatIList# mark X -> isNatIList# X)
     (isNatIList# active X -> isNatIList# X, isNatIList# active X -> isNatIList# X)
     (U43# active X -> U43# X, U43# mark X -> U43# X)
     (U43# active X -> U43# X, U43# active X -> U43# X)
     (U32# active X -> U32# X, U32# mark X -> U32# X)
     (U32# active X -> U32# X, U32# active X -> U32# X)
     (isNat# active X -> isNat# X, isNat# mark X -> isNat# X)
     (isNat# active X -> isNat# X, isNat# active X -> isNat# X)
     (U22# active X -> U22# X, U22# mark X -> U22# X)
     (U22# active X -> U22# X, U22# active X -> U22# X)
     (isNatList# active X -> isNatList# X, isNatList# mark X -> isNatList# X)
     (isNatList# active X -> isNatList# X, isNatList# active X -> isNatList# X)
     (U12# active X -> U12# X, U12# mark X -> U12# X)
     (U12# active X -> U12# X, U12# active X -> U12# X)
     (active# isNatKind 0() -> mark# tt(), mark# cons(X1, X2) -> mark# X1)
     (active# isNatKind 0() -> mark# tt(), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# isNatKind 0() -> mark# tt(), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# isNatKind 0() -> mark# tt(), mark# 0() -> active# 0())
     (active# isNatKind 0() -> mark# tt(), mark# zeros() -> active# zeros())
     (active# isNatKind 0() -> mark# tt(), mark# U12 X -> mark# X)
     (active# isNatKind 0() -> mark# tt(), mark# U12 X -> active# U12 mark X)
     (active# isNatKind 0() -> mark# tt(), mark# U12 X -> U12# mark X)
     (active# isNatKind 0() -> mark# tt(), mark# isNatList X -> active# isNatList X)
     (active# isNatKind 0() -> mark# tt(), mark# U11(X1, X2) -> mark# X1)
     (active# isNatKind 0() -> mark# tt(), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# isNatKind 0() -> mark# tt(), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# isNatKind 0() -> mark# tt(), mark# tt() -> active# tt())
     (active# isNatKind 0() -> mark# tt(), mark# U22 X -> mark# X)
     (active# isNatKind 0() -> mark# tt(), mark# U22 X -> active# U22 mark X)
     (active# isNatKind 0() -> mark# tt(), mark# U22 X -> U22# mark X)
     (active# isNatKind 0() -> mark# tt(), mark# isNat X -> active# isNat X)
     (active# isNatKind 0() -> mark# tt(), mark# U21(X1, X2) -> mark# X1)
     (active# isNatKind 0() -> mark# tt(), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# isNatKind 0() -> mark# tt(), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# isNatKind 0() -> mark# tt(), mark# U32 X -> mark# X)
     (active# isNatKind 0() -> mark# tt(), mark# U32 X -> active# U32 mark X)
     (active# isNatKind 0() -> mark# tt(), mark# U32 X -> U32# mark X)
     (active# isNatKind 0() -> mark# tt(), mark# U31(X1, X2) -> mark# X1)
     (active# isNatKind 0() -> mark# tt(), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# isNatKind 0() -> mark# tt(), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# isNatKind 0() -> mark# tt(), mark# U42(X1, X2) -> mark# X1)
     (active# isNatKind 0() -> mark# tt(), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# isNatKind 0() -> mark# tt(), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# isNatKind 0() -> mark# tt(), mark# U41(X1, X2, X3) -> mark# X1)
     (active# isNatKind 0() -> mark# tt(), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# isNatKind 0() -> mark# tt(), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# isNatKind 0() -> mark# tt(), mark# U43 X -> mark# X)
     (active# isNatKind 0() -> mark# tt(), mark# U43 X -> active# U43 mark X)
     (active# isNatKind 0() -> mark# tt(), mark# U43 X -> U43# mark X)
     (active# isNatKind 0() -> mark# tt(), mark# isNatIList X -> active# isNatIList X)
     (active# isNatKind 0() -> mark# tt(), mark# U52(X1, X2) -> mark# X1)
     (active# isNatKind 0() -> mark# tt(), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# isNatKind 0() -> mark# tt(), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# isNatKind 0() -> mark# tt(), mark# U51(X1, X2, X3) -> mark# X1)
     (active# isNatKind 0() -> mark# tt(), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# isNatKind 0() -> mark# tt(), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# isNatKind 0() -> mark# tt(), mark# U53 X -> mark# X)
     (active# isNatKind 0() -> mark# tt(), mark# U53 X -> active# U53 mark X)
     (active# isNatKind 0() -> mark# tt(), mark# U53 X -> U53# mark X)
     (active# isNatKind 0() -> mark# tt(), mark# U62(X1, X2) -> mark# X1)
     (active# isNatKind 0() -> mark# tt(), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# isNatKind 0() -> mark# tt(), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# isNatKind 0() -> mark# tt(), mark# U61(X1, X2, X3) -> mark# X1)
     (active# isNatKind 0() -> mark# tt(), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# isNatKind 0() -> mark# tt(), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# isNatKind 0() -> mark# tt(), mark# U63 X -> mark# X)
     (active# isNatKind 0() -> mark# tt(), mark# U63 X -> active# U63 mark X)
     (active# isNatKind 0() -> mark# tt(), mark# U63 X -> U63# mark X)
     (active# isNatKind 0() -> mark# tt(), mark# s X -> mark# X)
     (active# isNatKind 0() -> mark# tt(), mark# s X -> active# s mark X)
     (active# isNatKind 0() -> mark# tt(), mark# s X -> s# mark X)
     (active# isNatKind 0() -> mark# tt(), mark# length X -> mark# X)
     (active# isNatKind 0() -> mark# tt(), mark# length X -> active# length mark X)
     (active# isNatKind 0() -> mark# tt(), mark# length X -> length# mark X)
     (active# isNatKind 0() -> mark# tt(), mark# U71(X1, X2) -> mark# X1)
     (active# isNatKind 0() -> mark# tt(), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# isNatKind 0() -> mark# tt(), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# isNatKind 0() -> mark# tt(), mark# nil() -> active# nil())
     (active# isNatKind 0() -> mark# tt(), mark# U81 X -> mark# X)
     (active# isNatKind 0() -> mark# tt(), mark# U81 X -> active# U81 mark X)
     (active# isNatKind 0() -> mark# tt(), mark# U81 X -> U81# mark X)
     (active# isNatKind 0() -> mark# tt(), mark# take(X1, X2) -> mark# X1)
     (active# isNatKind 0() -> mark# tt(), mark# take(X1, X2) -> mark# X2)
     (active# isNatKind 0() -> mark# tt(), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# isNatKind 0() -> mark# tt(), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# isNatKind 0() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# isNatKind 0() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# isNatKind 0() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# isNatKind 0() -> mark# tt(), mark# and(X1, X2) -> mark# X1)
     (active# isNatKind 0() -> mark# tt(), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# isNatKind 0() -> mark# tt(), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# isNatKind 0() -> mark# tt(), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# isNatKind 0() -> mark# tt(), mark# isNatKind X -> active# isNatKind X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# cons(X1, X2) -> mark# X1)
     (active# isNatIListKind zeros() -> mark# tt(), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# isNatIListKind zeros() -> mark# tt(), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# isNatIListKind zeros() -> mark# tt(), mark# 0() -> active# 0())
     (active# isNatIListKind zeros() -> mark# tt(), mark# zeros() -> active# zeros())
     (active# isNatIListKind zeros() -> mark# tt(), mark# U12 X -> mark# X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U12 X -> active# U12 mark X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U12 X -> U12# mark X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# isNatList X -> active# isNatList X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U11(X1, X2) -> mark# X1)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# isNatIListKind zeros() -> mark# tt(), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# isNatIListKind zeros() -> mark# tt(), mark# tt() -> active# tt())
     (active# isNatIListKind zeros() -> mark# tt(), mark# U22 X -> mark# X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U22 X -> active# U22 mark X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U22 X -> U22# mark X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# isNat X -> active# isNat X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U21(X1, X2) -> mark# X1)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# isNatIListKind zeros() -> mark# tt(), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# isNatIListKind zeros() -> mark# tt(), mark# U32 X -> mark# X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U32 X -> active# U32 mark X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U32 X -> U32# mark X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U31(X1, X2) -> mark# X1)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# isNatIListKind zeros() -> mark# tt(), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# isNatIListKind zeros() -> mark# tt(), mark# U42(X1, X2) -> mark# X1)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# isNatIListKind zeros() -> mark# tt(), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# isNatIListKind zeros() -> mark# tt(), mark# U41(X1, X2, X3) -> mark# X1)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# isNatIListKind zeros() -> mark# tt(), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# isNatIListKind zeros() -> mark# tt(), mark# U43 X -> mark# X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U43 X -> active# U43 mark X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U43 X -> U43# mark X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# isNatIList X -> active# isNatIList X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U52(X1, X2) -> mark# X1)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# isNatIListKind zeros() -> mark# tt(), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# isNatIListKind zeros() -> mark# tt(), mark# U51(X1, X2, X3) -> mark# X1)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# isNatIListKind zeros() -> mark# tt(), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# isNatIListKind zeros() -> mark# tt(), mark# U53 X -> mark# X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U53 X -> active# U53 mark X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U53 X -> U53# mark X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U62(X1, X2) -> mark# X1)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# isNatIListKind zeros() -> mark# tt(), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# isNatIListKind zeros() -> mark# tt(), mark# U61(X1, X2, X3) -> mark# X1)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# isNatIListKind zeros() -> mark# tt(), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# isNatIListKind zeros() -> mark# tt(), mark# U63 X -> mark# X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U63 X -> active# U63 mark X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U63 X -> U63# mark X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# s X -> mark# X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# s X -> active# s mark X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# s X -> s# mark X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# length X -> mark# X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# length X -> active# length mark X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# length X -> length# mark X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U71(X1, X2) -> mark# X1)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# isNatIListKind zeros() -> mark# tt(), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# isNatIListKind zeros() -> mark# tt(), mark# nil() -> active# nil())
     (active# isNatIListKind zeros() -> mark# tt(), mark# U81 X -> mark# X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U81 X -> active# U81 mark X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U81 X -> U81# mark X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# take(X1, X2) -> mark# X1)
     (active# isNatIListKind zeros() -> mark# tt(), mark# take(X1, X2) -> mark# X2)
     (active# isNatIListKind zeros() -> mark# tt(), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# isNatIListKind zeros() -> mark# tt(), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# isNatIListKind zeros() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# isNatIListKind zeros() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# isNatIListKind zeros() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# isNatIListKind zeros() -> mark# tt(), mark# and(X1, X2) -> mark# X1)
     (active# isNatIListKind zeros() -> mark# tt(), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# isNatIListKind zeros() -> mark# tt(), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# isNatIListKind zeros() -> mark# tt(), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# isNatIListKind zeros() -> mark# tt(), mark# isNatKind X -> active# isNatKind X)
     (active# U81 tt() -> mark# nil(), mark# cons(X1, X2) -> mark# X1)
     (active# U81 tt() -> mark# nil(), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# U81 tt() -> mark# nil(), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# U81 tt() -> mark# nil(), mark# 0() -> active# 0())
     (active# U81 tt() -> mark# nil(), mark# zeros() -> active# zeros())
     (active# U81 tt() -> mark# nil(), mark# U12 X -> mark# X)
     (active# U81 tt() -> mark# nil(), mark# U12 X -> active# U12 mark X)
     (active# U81 tt() -> mark# nil(), mark# U12 X -> U12# mark X)
     (active# U81 tt() -> mark# nil(), mark# isNatList X -> active# isNatList X)
     (active# U81 tt() -> mark# nil(), mark# U11(X1, X2) -> mark# X1)
     (active# U81 tt() -> mark# nil(), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# U81 tt() -> mark# nil(), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# U81 tt() -> mark# nil(), mark# tt() -> active# tt())
     (active# U81 tt() -> mark# nil(), mark# U22 X -> mark# X)
     (active# U81 tt() -> mark# nil(), mark# U22 X -> active# U22 mark X)
     (active# U81 tt() -> mark# nil(), mark# U22 X -> U22# mark X)
     (active# U81 tt() -> mark# nil(), mark# isNat X -> active# isNat X)
     (active# U81 tt() -> mark# nil(), mark# U21(X1, X2) -> mark# X1)
     (active# U81 tt() -> mark# nil(), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# U81 tt() -> mark# nil(), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# U81 tt() -> mark# nil(), mark# U32 X -> mark# X)
     (active# U81 tt() -> mark# nil(), mark# U32 X -> active# U32 mark X)
     (active# U81 tt() -> mark# nil(), mark# U32 X -> U32# mark X)
     (active# U81 tt() -> mark# nil(), mark# U31(X1, X2) -> mark# X1)
     (active# U81 tt() -> mark# nil(), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# U81 tt() -> mark# nil(), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# U81 tt() -> mark# nil(), mark# U42(X1, X2) -> mark# X1)
     (active# U81 tt() -> mark# nil(), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# U81 tt() -> mark# nil(), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# U81 tt() -> mark# nil(), mark# U41(X1, X2, X3) -> mark# X1)
     (active# U81 tt() -> mark# nil(), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# U81 tt() -> mark# nil(), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# U81 tt() -> mark# nil(), mark# U43 X -> mark# X)
     (active# U81 tt() -> mark# nil(), mark# U43 X -> active# U43 mark X)
     (active# U81 tt() -> mark# nil(), mark# U43 X -> U43# mark X)
     (active# U81 tt() -> mark# nil(), mark# isNatIList X -> active# isNatIList X)
     (active# U81 tt() -> mark# nil(), mark# U52(X1, X2) -> mark# X1)
     (active# U81 tt() -> mark# nil(), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# U81 tt() -> mark# nil(), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# U81 tt() -> mark# nil(), mark# U51(X1, X2, X3) -> mark# X1)
     (active# U81 tt() -> mark# nil(), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# U81 tt() -> mark# nil(), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# U81 tt() -> mark# nil(), mark# U53 X -> mark# X)
     (active# U81 tt() -> mark# nil(), mark# U53 X -> active# U53 mark X)
     (active# U81 tt() -> mark# nil(), mark# U53 X -> U53# mark X)
     (active# U81 tt() -> mark# nil(), mark# U62(X1, X2) -> mark# X1)
     (active# U81 tt() -> mark# nil(), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# U81 tt() -> mark# nil(), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# U81 tt() -> mark# nil(), mark# U61(X1, X2, X3) -> mark# X1)
     (active# U81 tt() -> mark# nil(), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# U81 tt() -> mark# nil(), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# U81 tt() -> mark# nil(), mark# U63 X -> mark# X)
     (active# U81 tt() -> mark# nil(), mark# U63 X -> active# U63 mark X)
     (active# U81 tt() -> mark# nil(), mark# U63 X -> U63# mark X)
     (active# U81 tt() -> mark# nil(), mark# s X -> mark# X)
     (active# U81 tt() -> mark# nil(), mark# s X -> active# s mark X)
     (active# U81 tt() -> mark# nil(), mark# s X -> s# mark X)
     (active# U81 tt() -> mark# nil(), mark# length X -> mark# X)
     (active# U81 tt() -> mark# nil(), mark# length X -> active# length mark X)
     (active# U81 tt() -> mark# nil(), mark# length X -> length# mark X)
     (active# U81 tt() -> mark# nil(), mark# U71(X1, X2) -> mark# X1)
     (active# U81 tt() -> mark# nil(), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# U81 tt() -> mark# nil(), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# U81 tt() -> mark# nil(), mark# nil() -> active# nil())
     (active# U81 tt() -> mark# nil(), mark# U81 X -> mark# X)
     (active# U81 tt() -> mark# nil(), mark# U81 X -> active# U81 mark X)
     (active# U81 tt() -> mark# nil(), mark# U81 X -> U81# mark X)
     (active# U81 tt() -> mark# nil(), mark# take(X1, X2) -> mark# X1)
     (active# U81 tt() -> mark# nil(), mark# take(X1, X2) -> mark# X2)
     (active# U81 tt() -> mark# nil(), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# U81 tt() -> mark# nil(), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# U81 tt() -> mark# nil(), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# U81 tt() -> mark# nil(), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# U81 tt() -> mark# nil(), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# U81 tt() -> mark# nil(), mark# and(X1, X2) -> mark# X1)
     (active# U81 tt() -> mark# nil(), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# U81 tt() -> mark# nil(), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# U81 tt() -> mark# nil(), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# U81 tt() -> mark# nil(), mark# isNatKind X -> active# isNatKind X)
     (active# U63 tt() -> mark# tt(), mark# cons(X1, X2) -> mark# X1)
     (active# U63 tt() -> mark# tt(), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# U63 tt() -> mark# tt(), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# U63 tt() -> mark# tt(), mark# 0() -> active# 0())
     (active# U63 tt() -> mark# tt(), mark# zeros() -> active# zeros())
     (active# U63 tt() -> mark# tt(), mark# U12 X -> mark# X)
     (active# U63 tt() -> mark# tt(), mark# U12 X -> active# U12 mark X)
     (active# U63 tt() -> mark# tt(), mark# U12 X -> U12# mark X)
     (active# U63 tt() -> mark# tt(), mark# isNatList X -> active# isNatList X)
     (active# U63 tt() -> mark# tt(), mark# U11(X1, X2) -> mark# X1)
     (active# U63 tt() -> mark# tt(), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# U63 tt() -> mark# tt(), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# U63 tt() -> mark# tt(), mark# tt() -> active# tt())
     (active# U63 tt() -> mark# tt(), mark# U22 X -> mark# X)
     (active# U63 tt() -> mark# tt(), mark# U22 X -> active# U22 mark X)
     (active# U63 tt() -> mark# tt(), mark# U22 X -> U22# mark X)
     (active# U63 tt() -> mark# tt(), mark# isNat X -> active# isNat X)
     (active# U63 tt() -> mark# tt(), mark# U21(X1, X2) -> mark# X1)
     (active# U63 tt() -> mark# tt(), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# U63 tt() -> mark# tt(), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# U63 tt() -> mark# tt(), mark# U32 X -> mark# X)
     (active# U63 tt() -> mark# tt(), mark# U32 X -> active# U32 mark X)
     (active# U63 tt() -> mark# tt(), mark# U32 X -> U32# mark X)
     (active# U63 tt() -> mark# tt(), mark# U31(X1, X2) -> mark# X1)
     (active# U63 tt() -> mark# tt(), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# U63 tt() -> mark# tt(), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# U63 tt() -> mark# tt(), mark# U42(X1, X2) -> mark# X1)
     (active# U63 tt() -> mark# tt(), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# U63 tt() -> mark# tt(), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# U63 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> mark# X1)
     (active# U63 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# U63 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# U63 tt() -> mark# tt(), mark# U43 X -> mark# X)
     (active# U63 tt() -> mark# tt(), mark# U43 X -> active# U43 mark X)
     (active# U63 tt() -> mark# tt(), mark# U43 X -> U43# mark X)
     (active# U63 tt() -> mark# tt(), mark# isNatIList X -> active# isNatIList X)
     (active# U63 tt() -> mark# tt(), mark# U52(X1, X2) -> mark# X1)
     (active# U63 tt() -> mark# tt(), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# U63 tt() -> mark# tt(), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# U63 tt() -> mark# tt(), mark# U51(X1, X2, X3) -> mark# X1)
     (active# U63 tt() -> mark# tt(), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# U63 tt() -> mark# tt(), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# U63 tt() -> mark# tt(), mark# U53 X -> mark# X)
     (active# U63 tt() -> mark# tt(), mark# U53 X -> active# U53 mark X)
     (active# U63 tt() -> mark# tt(), mark# U53 X -> U53# mark X)
     (active# U63 tt() -> mark# tt(), mark# U62(X1, X2) -> mark# X1)
     (active# U63 tt() -> mark# tt(), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# U63 tt() -> mark# tt(), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# U63 tt() -> mark# tt(), mark# U61(X1, X2, X3) -> mark# X1)
     (active# U63 tt() -> mark# tt(), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# U63 tt() -> mark# tt(), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# U63 tt() -> mark# tt(), mark# U63 X -> mark# X)
     (active# U63 tt() -> mark# tt(), mark# U63 X -> active# U63 mark X)
     (active# U63 tt() -> mark# tt(), mark# U63 X -> U63# mark X)
     (active# U63 tt() -> mark# tt(), mark# s X -> mark# X)
     (active# U63 tt() -> mark# tt(), mark# s X -> active# s mark X)
     (active# U63 tt() -> mark# tt(), mark# s X -> s# mark X)
     (active# U63 tt() -> mark# tt(), mark# length X -> mark# X)
     (active# U63 tt() -> mark# tt(), mark# length X -> active# length mark X)
     (active# U63 tt() -> mark# tt(), mark# length X -> length# mark X)
     (active# U63 tt() -> mark# tt(), mark# U71(X1, X2) -> mark# X1)
     (active# U63 tt() -> mark# tt(), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# U63 tt() -> mark# tt(), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# U63 tt() -> mark# tt(), mark# nil() -> active# nil())
     (active# U63 tt() -> mark# tt(), mark# U81 X -> mark# X)
     (active# U63 tt() -> mark# tt(), mark# U81 X -> active# U81 mark X)
     (active# U63 tt() -> mark# tt(), mark# U81 X -> U81# mark X)
     (active# U63 tt() -> mark# tt(), mark# take(X1, X2) -> mark# X1)
     (active# U63 tt() -> mark# tt(), mark# take(X1, X2) -> mark# X2)
     (active# U63 tt() -> mark# tt(), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# U63 tt() -> mark# tt(), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# U63 tt() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# U63 tt() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# U63 tt() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# U63 tt() -> mark# tt(), mark# and(X1, X2) -> mark# X1)
     (active# U63 tt() -> mark# tt(), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# U63 tt() -> mark# tt(), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# U63 tt() -> mark# tt(), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# U63 tt() -> mark# tt(), mark# isNatKind X -> active# isNatKind X)
     (active# isNatIList zeros() -> mark# tt(), mark# cons(X1, X2) -> mark# X1)
     (active# isNatIList zeros() -> mark# tt(), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# isNatIList zeros() -> mark# tt(), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# isNatIList zeros() -> mark# tt(), mark# 0() -> active# 0())
     (active# isNatIList zeros() -> mark# tt(), mark# zeros() -> active# zeros())
     (active# isNatIList zeros() -> mark# tt(), mark# U12 X -> mark# X)
     (active# isNatIList zeros() -> mark# tt(), mark# U12 X -> active# U12 mark X)
     (active# isNatIList zeros() -> mark# tt(), mark# U12 X -> U12# mark X)
     (active# isNatIList zeros() -> mark# tt(), mark# isNatList X -> active# isNatList X)
     (active# isNatIList zeros() -> mark# tt(), mark# U11(X1, X2) -> mark# X1)
     (active# isNatIList zeros() -> mark# tt(), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# isNatIList zeros() -> mark# tt(), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# isNatIList zeros() -> mark# tt(), mark# tt() -> active# tt())
     (active# isNatIList zeros() -> mark# tt(), mark# U22 X -> mark# X)
     (active# isNatIList zeros() -> mark# tt(), mark# U22 X -> active# U22 mark X)
     (active# isNatIList zeros() -> mark# tt(), mark# U22 X -> U22# mark X)
     (active# isNatIList zeros() -> mark# tt(), mark# isNat X -> active# isNat X)
     (active# isNatIList zeros() -> mark# tt(), mark# U21(X1, X2) -> mark# X1)
     (active# isNatIList zeros() -> mark# tt(), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# isNatIList zeros() -> mark# tt(), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# isNatIList zeros() -> mark# tt(), mark# U32 X -> mark# X)
     (active# isNatIList zeros() -> mark# tt(), mark# U32 X -> active# U32 mark X)
     (active# isNatIList zeros() -> mark# tt(), mark# U32 X -> U32# mark X)
     (active# isNatIList zeros() -> mark# tt(), mark# U31(X1, X2) -> mark# X1)
     (active# isNatIList zeros() -> mark# tt(), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# isNatIList zeros() -> mark# tt(), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# isNatIList zeros() -> mark# tt(), mark# U42(X1, X2) -> mark# X1)
     (active# isNatIList zeros() -> mark# tt(), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# isNatIList zeros() -> mark# tt(), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# isNatIList zeros() -> mark# tt(), mark# U41(X1, X2, X3) -> mark# X1)
     (active# isNatIList zeros() -> mark# tt(), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# isNatIList zeros() -> mark# tt(), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# isNatIList zeros() -> mark# tt(), mark# U43 X -> mark# X)
     (active# isNatIList zeros() -> mark# tt(), mark# U43 X -> active# U43 mark X)
     (active# isNatIList zeros() -> mark# tt(), mark# U43 X -> U43# mark X)
     (active# isNatIList zeros() -> mark# tt(), mark# isNatIList X -> active# isNatIList X)
     (active# isNatIList zeros() -> mark# tt(), mark# U52(X1, X2) -> mark# X1)
     (active# isNatIList zeros() -> mark# tt(), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# isNatIList zeros() -> mark# tt(), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# isNatIList zeros() -> mark# tt(), mark# U51(X1, X2, X3) -> mark# X1)
     (active# isNatIList zeros() -> mark# tt(), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# isNatIList zeros() -> mark# tt(), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# isNatIList zeros() -> mark# tt(), mark# U53 X -> mark# X)
     (active# isNatIList zeros() -> mark# tt(), mark# U53 X -> active# U53 mark X)
     (active# isNatIList zeros() -> mark# tt(), mark# U53 X -> U53# mark X)
     (active# isNatIList zeros() -> mark# tt(), mark# U62(X1, X2) -> mark# X1)
     (active# isNatIList zeros() -> mark# tt(), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# isNatIList zeros() -> mark# tt(), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# isNatIList zeros() -> mark# tt(), mark# U61(X1, X2, X3) -> mark# X1)
     (active# isNatIList zeros() -> mark# tt(), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# isNatIList zeros() -> mark# tt(), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# isNatIList zeros() -> mark# tt(), mark# U63 X -> mark# X)
     (active# isNatIList zeros() -> mark# tt(), mark# U63 X -> active# U63 mark X)
     (active# isNatIList zeros() -> mark# tt(), mark# U63 X -> U63# mark X)
     (active# isNatIList zeros() -> mark# tt(), mark# s X -> mark# X)
     (active# isNatIList zeros() -> mark# tt(), mark# s X -> active# s mark X)
     (active# isNatIList zeros() -> mark# tt(), mark# s X -> s# mark X)
     (active# isNatIList zeros() -> mark# tt(), mark# length X -> mark# X)
     (active# isNatIList zeros() -> mark# tt(), mark# length X -> active# length mark X)
     (active# isNatIList zeros() -> mark# tt(), mark# length X -> length# mark X)
     (active# isNatIList zeros() -> mark# tt(), mark# U71(X1, X2) -> mark# X1)
     (active# isNatIList zeros() -> mark# tt(), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# isNatIList zeros() -> mark# tt(), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# isNatIList zeros() -> mark# tt(), mark# nil() -> active# nil())
     (active# isNatIList zeros() -> mark# tt(), mark# U81 X -> mark# X)
     (active# isNatIList zeros() -> mark# tt(), mark# U81 X -> active# U81 mark X)
     (active# isNatIList zeros() -> mark# tt(), mark# U81 X -> U81# mark X)
     (active# isNatIList zeros() -> mark# tt(), mark# take(X1, X2) -> mark# X1)
     (active# isNatIList zeros() -> mark# tt(), mark# take(X1, X2) -> mark# X2)
     (active# isNatIList zeros() -> mark# tt(), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# isNatIList zeros() -> mark# tt(), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# isNatIList zeros() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# isNatIList zeros() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# isNatIList zeros() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# isNatIList zeros() -> mark# tt(), mark# and(X1, X2) -> mark# X1)
     (active# isNatIList zeros() -> mark# tt(), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# isNatIList zeros() -> mark# tt(), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# isNatIList zeros() -> mark# tt(), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# isNatIList zeros() -> mark# tt(), mark# isNatKind X -> active# isNatKind X)
     (active# U32 tt() -> mark# tt(), mark# cons(X1, X2) -> mark# X1)
     (active# U32 tt() -> mark# tt(), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# U32 tt() -> mark# tt(), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# U32 tt() -> mark# tt(), mark# 0() -> active# 0())
     (active# U32 tt() -> mark# tt(), mark# zeros() -> active# zeros())
     (active# U32 tt() -> mark# tt(), mark# U12 X -> mark# X)
     (active# U32 tt() -> mark# tt(), mark# U12 X -> active# U12 mark X)
     (active# U32 tt() -> mark# tt(), mark# U12 X -> U12# mark X)
     (active# U32 tt() -> mark# tt(), mark# isNatList X -> active# isNatList X)
     (active# U32 tt() -> mark# tt(), mark# U11(X1, X2) -> mark# X1)
     (active# U32 tt() -> mark# tt(), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# U32 tt() -> mark# tt(), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# U32 tt() -> mark# tt(), mark# tt() -> active# tt())
     (active# U32 tt() -> mark# tt(), mark# U22 X -> mark# X)
     (active# U32 tt() -> mark# tt(), mark# U22 X -> active# U22 mark X)
     (active# U32 tt() -> mark# tt(), mark# U22 X -> U22# mark X)
     (active# U32 tt() -> mark# tt(), mark# isNat X -> active# isNat X)
     (active# U32 tt() -> mark# tt(), mark# U21(X1, X2) -> mark# X1)
     (active# U32 tt() -> mark# tt(), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# U32 tt() -> mark# tt(), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# U32 tt() -> mark# tt(), mark# U32 X -> mark# X)
     (active# U32 tt() -> mark# tt(), mark# U32 X -> active# U32 mark X)
     (active# U32 tt() -> mark# tt(), mark# U32 X -> U32# mark X)
     (active# U32 tt() -> mark# tt(), mark# U31(X1, X2) -> mark# X1)
     (active# U32 tt() -> mark# tt(), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# U32 tt() -> mark# tt(), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# U32 tt() -> mark# tt(), mark# U42(X1, X2) -> mark# X1)
     (active# U32 tt() -> mark# tt(), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# U32 tt() -> mark# tt(), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# U32 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> mark# X1)
     (active# U32 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# U32 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# U32 tt() -> mark# tt(), mark# U43 X -> mark# X)
     (active# U32 tt() -> mark# tt(), mark# U43 X -> active# U43 mark X)
     (active# U32 tt() -> mark# tt(), mark# U43 X -> U43# mark X)
     (active# U32 tt() -> mark# tt(), mark# isNatIList X -> active# isNatIList X)
     (active# U32 tt() -> mark# tt(), mark# U52(X1, X2) -> mark# X1)
     (active# U32 tt() -> mark# tt(), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# U32 tt() -> mark# tt(), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# U32 tt() -> mark# tt(), mark# U51(X1, X2, X3) -> mark# X1)
     (active# U32 tt() -> mark# tt(), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# U32 tt() -> mark# tt(), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# U32 tt() -> mark# tt(), mark# U53 X -> mark# X)
     (active# U32 tt() -> mark# tt(), mark# U53 X -> active# U53 mark X)
     (active# U32 tt() -> mark# tt(), mark# U53 X -> U53# mark X)
     (active# U32 tt() -> mark# tt(), mark# U62(X1, X2) -> mark# X1)
     (active# U32 tt() -> mark# tt(), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# U32 tt() -> mark# tt(), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# U32 tt() -> mark# tt(), mark# U61(X1, X2, X3) -> mark# X1)
     (active# U32 tt() -> mark# tt(), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# U32 tt() -> mark# tt(), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# U32 tt() -> mark# tt(), mark# U63 X -> mark# X)
     (active# U32 tt() -> mark# tt(), mark# U63 X -> active# U63 mark X)
     (active# U32 tt() -> mark# tt(), mark# U63 X -> U63# mark X)
     (active# U32 tt() -> mark# tt(), mark# s X -> mark# X)
     (active# U32 tt() -> mark# tt(), mark# s X -> active# s mark X)
     (active# U32 tt() -> mark# tt(), mark# s X -> s# mark X)
     (active# U32 tt() -> mark# tt(), mark# length X -> mark# X)
     (active# U32 tt() -> mark# tt(), mark# length X -> active# length mark X)
     (active# U32 tt() -> mark# tt(), mark# length X -> length# mark X)
     (active# U32 tt() -> mark# tt(), mark# U71(X1, X2) -> mark# X1)
     (active# U32 tt() -> mark# tt(), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# U32 tt() -> mark# tt(), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# U32 tt() -> mark# tt(), mark# nil() -> active# nil())
     (active# U32 tt() -> mark# tt(), mark# U81 X -> mark# X)
     (active# U32 tt() -> mark# tt(), mark# U81 X -> active# U81 mark X)
     (active# U32 tt() -> mark# tt(), mark# U81 X -> U81# mark X)
     (active# U32 tt() -> mark# tt(), mark# take(X1, X2) -> mark# X1)
     (active# U32 tt() -> mark# tt(), mark# take(X1, X2) -> mark# X2)
     (active# U32 tt() -> mark# tt(), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# U32 tt() -> mark# tt(), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# U32 tt() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# U32 tt() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# U32 tt() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# U32 tt() -> mark# tt(), mark# and(X1, X2) -> mark# X1)
     (active# U32 tt() -> mark# tt(), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# U32 tt() -> mark# tt(), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# U32 tt() -> mark# tt(), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# U32 tt() -> mark# tt(), mark# isNatKind X -> active# isNatKind X)
     (active# U22 tt() -> mark# tt(), mark# cons(X1, X2) -> mark# X1)
     (active# U22 tt() -> mark# tt(), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# U22 tt() -> mark# tt(), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# U22 tt() -> mark# tt(), mark# 0() -> active# 0())
     (active# U22 tt() -> mark# tt(), mark# zeros() -> active# zeros())
     (active# U22 tt() -> mark# tt(), mark# U12 X -> mark# X)
     (active# U22 tt() -> mark# tt(), mark# U12 X -> active# U12 mark X)
     (active# U22 tt() -> mark# tt(), mark# U12 X -> U12# mark X)
     (active# U22 tt() -> mark# tt(), mark# isNatList X -> active# isNatList X)
     (active# U22 tt() -> mark# tt(), mark# U11(X1, X2) -> mark# X1)
     (active# U22 tt() -> mark# tt(), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# U22 tt() -> mark# tt(), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# U22 tt() -> mark# tt(), mark# tt() -> active# tt())
     (active# U22 tt() -> mark# tt(), mark# U22 X -> mark# X)
     (active# U22 tt() -> mark# tt(), mark# U22 X -> active# U22 mark X)
     (active# U22 tt() -> mark# tt(), mark# U22 X -> U22# mark X)
     (active# U22 tt() -> mark# tt(), mark# isNat X -> active# isNat X)
     (active# U22 tt() -> mark# tt(), mark# U21(X1, X2) -> mark# X1)
     (active# U22 tt() -> mark# tt(), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# U22 tt() -> mark# tt(), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# U22 tt() -> mark# tt(), mark# U32 X -> mark# X)
     (active# U22 tt() -> mark# tt(), mark# U32 X -> active# U32 mark X)
     (active# U22 tt() -> mark# tt(), mark# U32 X -> U32# mark X)
     (active# U22 tt() -> mark# tt(), mark# U31(X1, X2) -> mark# X1)
     (active# U22 tt() -> mark# tt(), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# U22 tt() -> mark# tt(), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# U22 tt() -> mark# tt(), mark# U42(X1, X2) -> mark# X1)
     (active# U22 tt() -> mark# tt(), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# U22 tt() -> mark# tt(), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# U22 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> mark# X1)
     (active# U22 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# U22 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# U22 tt() -> mark# tt(), mark# U43 X -> mark# X)
     (active# U22 tt() -> mark# tt(), mark# U43 X -> active# U43 mark X)
     (active# U22 tt() -> mark# tt(), mark# U43 X -> U43# mark X)
     (active# U22 tt() -> mark# tt(), mark# isNatIList X -> active# isNatIList X)
     (active# U22 tt() -> mark# tt(), mark# U52(X1, X2) -> mark# X1)
     (active# U22 tt() -> mark# tt(), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# U22 tt() -> mark# tt(), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# U22 tt() -> mark# tt(), mark# U51(X1, X2, X3) -> mark# X1)
     (active# U22 tt() -> mark# tt(), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# U22 tt() -> mark# tt(), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# U22 tt() -> mark# tt(), mark# U53 X -> mark# X)
     (active# U22 tt() -> mark# tt(), mark# U53 X -> active# U53 mark X)
     (active# U22 tt() -> mark# tt(), mark# U53 X -> U53# mark X)
     (active# U22 tt() -> mark# tt(), mark# U62(X1, X2) -> mark# X1)
     (active# U22 tt() -> mark# tt(), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# U22 tt() -> mark# tt(), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# U22 tt() -> mark# tt(), mark# U61(X1, X2, X3) -> mark# X1)
     (active# U22 tt() -> mark# tt(), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# U22 tt() -> mark# tt(), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# U22 tt() -> mark# tt(), mark# U63 X -> mark# X)
     (active# U22 tt() -> mark# tt(), mark# U63 X -> active# U63 mark X)
     (active# U22 tt() -> mark# tt(), mark# U63 X -> U63# mark X)
     (active# U22 tt() -> mark# tt(), mark# s X -> mark# X)
     (active# U22 tt() -> mark# tt(), mark# s X -> active# s mark X)
     (active# U22 tt() -> mark# tt(), mark# s X -> s# mark X)
     (active# U22 tt() -> mark# tt(), mark# length X -> mark# X)
     (active# U22 tt() -> mark# tt(), mark# length X -> active# length mark X)
     (active# U22 tt() -> mark# tt(), mark# length X -> length# mark X)
     (active# U22 tt() -> mark# tt(), mark# U71(X1, X2) -> mark# X1)
     (active# U22 tt() -> mark# tt(), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# U22 tt() -> mark# tt(), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# U22 tt() -> mark# tt(), mark# nil() -> active# nil())
     (active# U22 tt() -> mark# tt(), mark# U81 X -> mark# X)
     (active# U22 tt() -> mark# tt(), mark# U81 X -> active# U81 mark X)
     (active# U22 tt() -> mark# tt(), mark# U81 X -> U81# mark X)
     (active# U22 tt() -> mark# tt(), mark# take(X1, X2) -> mark# X1)
     (active# U22 tt() -> mark# tt(), mark# take(X1, X2) -> mark# X2)
     (active# U22 tt() -> mark# tt(), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# U22 tt() -> mark# tt(), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# U22 tt() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# U22 tt() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# U22 tt() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# U22 tt() -> mark# tt(), mark# and(X1, X2) -> mark# X1)
     (active# U22 tt() -> mark# tt(), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# U22 tt() -> mark# tt(), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# U22 tt() -> mark# tt(), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# U22 tt() -> mark# tt(), mark# isNatKind X -> active# isNatKind X)
     (active# U12 tt() -> mark# tt(), mark# cons(X1, X2) -> mark# X1)
     (active# U12 tt() -> mark# tt(), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# U12 tt() -> mark# tt(), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# U12 tt() -> mark# tt(), mark# 0() -> active# 0())
     (active# U12 tt() -> mark# tt(), mark# zeros() -> active# zeros())
     (active# U12 tt() -> mark# tt(), mark# U12 X -> mark# X)
     (active# U12 tt() -> mark# tt(), mark# U12 X -> active# U12 mark X)
     (active# U12 tt() -> mark# tt(), mark# U12 X -> U12# mark X)
     (active# U12 tt() -> mark# tt(), mark# isNatList X -> active# isNatList X)
     (active# U12 tt() -> mark# tt(), mark# U11(X1, X2) -> mark# X1)
     (active# U12 tt() -> mark# tt(), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# U12 tt() -> mark# tt(), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# U12 tt() -> mark# tt(), mark# tt() -> active# tt())
     (active# U12 tt() -> mark# tt(), mark# U22 X -> mark# X)
     (active# U12 tt() -> mark# tt(), mark# U22 X -> active# U22 mark X)
     (active# U12 tt() -> mark# tt(), mark# U22 X -> U22# mark X)
     (active# U12 tt() -> mark# tt(), mark# isNat X -> active# isNat X)
     (active# U12 tt() -> mark# tt(), mark# U21(X1, X2) -> mark# X1)
     (active# U12 tt() -> mark# tt(), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# U12 tt() -> mark# tt(), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# U12 tt() -> mark# tt(), mark# U32 X -> mark# X)
     (active# U12 tt() -> mark# tt(), mark# U32 X -> active# U32 mark X)
     (active# U12 tt() -> mark# tt(), mark# U32 X -> U32# mark X)
     (active# U12 tt() -> mark# tt(), mark# U31(X1, X2) -> mark# X1)
     (active# U12 tt() -> mark# tt(), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# U12 tt() -> mark# tt(), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# U12 tt() -> mark# tt(), mark# U42(X1, X2) -> mark# X1)
     (active# U12 tt() -> mark# tt(), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# U12 tt() -> mark# tt(), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# U12 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> mark# X1)
     (active# U12 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# U12 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# U12 tt() -> mark# tt(), mark# U43 X -> mark# X)
     (active# U12 tt() -> mark# tt(), mark# U43 X -> active# U43 mark X)
     (active# U12 tt() -> mark# tt(), mark# U43 X -> U43# mark X)
     (active# U12 tt() -> mark# tt(), mark# isNatIList X -> active# isNatIList X)
     (active# U12 tt() -> mark# tt(), mark# U52(X1, X2) -> mark# X1)
     (active# U12 tt() -> mark# tt(), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# U12 tt() -> mark# tt(), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# U12 tt() -> mark# tt(), mark# U51(X1, X2, X3) -> mark# X1)
     (active# U12 tt() -> mark# tt(), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# U12 tt() -> mark# tt(), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# U12 tt() -> mark# tt(), mark# U53 X -> mark# X)
     (active# U12 tt() -> mark# tt(), mark# U53 X -> active# U53 mark X)
     (active# U12 tt() -> mark# tt(), mark# U53 X -> U53# mark X)
     (active# U12 tt() -> mark# tt(), mark# U62(X1, X2) -> mark# X1)
     (active# U12 tt() -> mark# tt(), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# U12 tt() -> mark# tt(), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# U12 tt() -> mark# tt(), mark# U61(X1, X2, X3) -> mark# X1)
     (active# U12 tt() -> mark# tt(), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# U12 tt() -> mark# tt(), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# U12 tt() -> mark# tt(), mark# U63 X -> mark# X)
     (active# U12 tt() -> mark# tt(), mark# U63 X -> active# U63 mark X)
     (active# U12 tt() -> mark# tt(), mark# U63 X -> U63# mark X)
     (active# U12 tt() -> mark# tt(), mark# s X -> mark# X)
     (active# U12 tt() -> mark# tt(), mark# s X -> active# s mark X)
     (active# U12 tt() -> mark# tt(), mark# s X -> s# mark X)
     (active# U12 tt() -> mark# tt(), mark# length X -> mark# X)
     (active# U12 tt() -> mark# tt(), mark# length X -> active# length mark X)
     (active# U12 tt() -> mark# tt(), mark# length X -> length# mark X)
     (active# U12 tt() -> mark# tt(), mark# U71(X1, X2) -> mark# X1)
     (active# U12 tt() -> mark# tt(), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# U12 tt() -> mark# tt(), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# U12 tt() -> mark# tt(), mark# nil() -> active# nil())
     (active# U12 tt() -> mark# tt(), mark# U81 X -> mark# X)
     (active# U12 tt() -> mark# tt(), mark# U81 X -> active# U81 mark X)
     (active# U12 tt() -> mark# tt(), mark# U81 X -> U81# mark X)
     (active# U12 tt() -> mark# tt(), mark# take(X1, X2) -> mark# X1)
     (active# U12 tt() -> mark# tt(), mark# take(X1, X2) -> mark# X2)
     (active# U12 tt() -> mark# tt(), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# U12 tt() -> mark# tt(), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# U12 tt() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# U12 tt() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# U12 tt() -> mark# tt(), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# U12 tt() -> mark# tt(), mark# and(X1, X2) -> mark# X1)
     (active# U12 tt() -> mark# tt(), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# U12 tt() -> mark# tt(), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# U12 tt() -> mark# tt(), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# U12 tt() -> mark# tt(), mark# isNatKind X -> active# isNatKind X)
     (mark# nil() -> active# nil(), active# zeros() -> mark# cons(0(), zeros()))
     (mark# nil() -> active# nil(), active# zeros() -> cons#(0(), zeros()))
     (mark# nil() -> active# nil(), active# U12 tt() -> mark# tt())
     (mark# nil() -> active# nil(), active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# nil() -> active# nil(), active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# nil() -> active# nil(), active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# nil() -> active# nil(), active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# nil() -> active# nil(), active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# nil() -> active# nil(), active# isNatList nil() -> mark# tt())
     (mark# nil() -> active# nil(), active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# nil() -> active# nil(), active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# nil() -> active# nil(), active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# nil() -> active# nil(), active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# nil() -> active# nil(), active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# nil() -> active# nil(), active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# nil() -> active# nil(), active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# nil() -> active# nil(), active# U11(tt(), V1) -> isNatList# V1)
     (mark# nil() -> active# nil(), active# U22 tt() -> mark# tt())
     (mark# nil() -> active# nil(), active# isNat 0() -> mark# tt())
     (mark# nil() -> active# nil(), active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# nil() -> active# nil(), active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# nil() -> active# nil(), active# isNat s V1 -> isNatKind# V1)
     (mark# nil() -> active# nil(), active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# nil() -> active# nil(), active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# nil() -> active# nil(), active# isNat length V1 -> isNatIListKind# V1)
     (mark# nil() -> active# nil(), active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# nil() -> active# nil(), active# U21(tt(), V1) -> U22# isNat V1)
     (mark# nil() -> active# nil(), active# U21(tt(), V1) -> isNat# V1)
     (mark# nil() -> active# nil(), active# U32 tt() -> mark# tt())
     (mark# nil() -> active# nil(), active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# nil() -> active# nil(), active# U31(tt(), V) -> isNatList# V)
     (mark# nil() -> active# nil(), active# U31(tt(), V) -> U32# isNatList V)
     (mark# nil() -> active# nil(), active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# nil() -> active# nil(), active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# nil() -> active# nil(), active# U42(tt(), V2) -> isNatIList# V2)
     (mark# nil() -> active# nil(), active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# nil() -> active# nil(), active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# nil() -> active# nil(), active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# nil() -> active# nil(), active# U43 tt() -> mark# tt())
     (mark# nil() -> active# nil(), active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# nil() -> active# nil(), active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# nil() -> active# nil(), active# isNatIList V -> isNatIListKind# V)
     (mark# nil() -> active# nil(), active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# nil() -> active# nil(), active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# nil() -> active# nil(), active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# nil() -> active# nil(), active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# nil() -> active# nil(), active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# nil() -> active# nil(), active# isNatIList zeros() -> mark# tt())
     (mark# nil() -> active# nil(), active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# nil() -> active# nil(), active# U52(tt(), V2) -> isNatList# V2)
     (mark# nil() -> active# nil(), active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# nil() -> active# nil(), active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# nil() -> active# nil(), active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# nil() -> active# nil(), active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# nil() -> active# nil(), active# U53 tt() -> mark# tt())
     (mark# nil() -> active# nil(), active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# nil() -> active# nil(), active# U62(tt(), V2) -> isNatIList# V2)
     (mark# nil() -> active# nil(), active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# nil() -> active# nil(), active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# nil() -> active# nil(), active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# nil() -> active# nil(), active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# nil() -> active# nil(), active# U63 tt() -> mark# tt())
     (mark# nil() -> active# nil(), active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# nil() -> active# nil(), active# length cons(N, L) -> isNatList# L)
     (mark# nil() -> active# nil(), active# length cons(N, L) -> isNat# N)
     (mark# nil() -> active# nil(), active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# nil() -> active# nil(), active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# nil() -> active# nil(), active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# nil() -> active# nil(), active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# nil() -> active# nil(), active# length cons(N, L) -> isNatIListKind# L)
     (mark# nil() -> active# nil(), active# length cons(N, L) -> isNatKind# N)
     (mark# nil() -> active# nil(), active# length nil() -> mark# 0())
     (mark# nil() -> active# nil(), active# U71(tt(), L) -> mark# s length L)
     (mark# nil() -> active# nil(), active# U71(tt(), L) -> s# length L)
     (mark# nil() -> active# nil(), active# U71(tt(), L) -> length# L)
     (mark# nil() -> active# nil(), active# U81 tt() -> mark# nil())
     (mark# nil() -> active# nil(), active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# nil() -> active# nil(), active# take(0(), IL) -> isNatIList# IL)
     (mark# nil() -> active# nil(), active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# nil() -> active# nil(), active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# nil() -> active# nil(), active# take(0(), IL) -> isNatIListKind# IL)
     (mark# nil() -> active# nil(), active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# nil() -> active# nil(), active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# nil() -> active# nil(), active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# nil() -> active# nil(), active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# nil() -> active# nil(), active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# nil() -> active# nil(), active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# nil() -> active# nil(), active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# nil() -> active# nil(), active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# nil() -> active# nil(), active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# nil() -> active# nil(), active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# nil() -> active# nil(), active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# nil() -> active# nil(), active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# nil() -> active# nil(), active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# nil() -> active# nil(), active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# nil() -> active# nil(), active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# nil() -> active# nil(), active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# nil() -> active# nil(), active# and(tt(), X) -> mark# X)
     (mark# nil() -> active# nil(), active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# nil() -> active# nil(), active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# nil() -> active# nil(), active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# nil() -> active# nil(), active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# nil() -> active# nil(), active# isNatIListKind zeros() -> mark# tt())
     (mark# nil() -> active# nil(), active# isNatIListKind nil() -> mark# tt())
     (mark# nil() -> active# nil(), active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# nil() -> active# nil(), active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# nil() -> active# nil(), active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# nil() -> active# nil(), active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# nil() -> active# nil(), active# isNatKind 0() -> mark# tt())
     (mark# nil() -> active# nil(), active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# nil() -> active# nil(), active# isNatKind s V1 -> isNatKind# V1)
     (mark# nil() -> active# nil(), active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# nil() -> active# nil(), active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# s X -> mark# X, mark# cons(X1, X2) -> mark# X1)
     (mark# s X -> mark# X, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# s X -> mark# X, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# s X -> mark# X, mark# 0() -> active# 0())
     (mark# s X -> mark# X, mark# zeros() -> active# zeros())
     (mark# s X -> mark# X, mark# U12 X -> mark# X)
     (mark# s X -> mark# X, mark# U12 X -> active# U12 mark X)
     (mark# s X -> mark# X, mark# U12 X -> U12# mark X)
     (mark# s X -> mark# X, mark# isNatList X -> active# isNatList X)
     (mark# s X -> mark# X, mark# U11(X1, X2) -> mark# X1)
     (mark# s X -> mark# X, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# s X -> mark# X, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# s X -> mark# X, mark# tt() -> active# tt())
     (mark# s X -> mark# X, mark# U22 X -> mark# X)
     (mark# s X -> mark# X, mark# U22 X -> active# U22 mark X)
     (mark# s X -> mark# X, mark# U22 X -> U22# mark X)
     (mark# s X -> mark# X, mark# isNat X -> active# isNat X)
     (mark# s X -> mark# X, mark# U21(X1, X2) -> mark# X1)
     (mark# s X -> mark# X, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# s X -> mark# X, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# s X -> mark# X, mark# U32 X -> mark# X)
     (mark# s X -> mark# X, mark# U32 X -> active# U32 mark X)
     (mark# s X -> mark# X, mark# U32 X -> U32# mark X)
     (mark# s X -> mark# X, mark# U31(X1, X2) -> mark# X1)
     (mark# s X -> mark# X, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# s X -> mark# X, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# s X -> mark# X, mark# U42(X1, X2) -> mark# X1)
     (mark# s X -> mark# X, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# s X -> mark# X, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# s X -> mark# X, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# s X -> mark# X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# s X -> mark# X, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# s X -> mark# X, mark# U43 X -> mark# X)
     (mark# s X -> mark# X, mark# U43 X -> active# U43 mark X)
     (mark# s X -> mark# X, mark# U43 X -> U43# mark X)
     (mark# s X -> mark# X, mark# isNatIList X -> active# isNatIList X)
     (mark# s X -> mark# X, mark# U52(X1, X2) -> mark# X1)
     (mark# s X -> mark# X, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# s X -> mark# X, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# s X -> mark# X, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# s X -> mark# X, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# s X -> mark# X, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# s X -> mark# X, mark# U53 X -> mark# X)
     (mark# s X -> mark# X, mark# U53 X -> active# U53 mark X)
     (mark# s X -> mark# X, mark# U53 X -> U53# mark X)
     (mark# s X -> mark# X, mark# U62(X1, X2) -> mark# X1)
     (mark# s X -> mark# X, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# s X -> mark# X, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# s X -> mark# X, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# s X -> mark# X, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# s X -> mark# X, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# s X -> mark# X, mark# U63 X -> mark# X)
     (mark# s X -> mark# X, mark# U63 X -> active# U63 mark X)
     (mark# s X -> mark# X, mark# U63 X -> U63# mark X)
     (mark# s X -> mark# X, mark# s X -> mark# X)
     (mark# s X -> mark# X, mark# s X -> active# s mark X)
     (mark# s X -> mark# X, mark# s X -> s# mark X)
     (mark# s X -> mark# X, mark# length X -> mark# X)
     (mark# s X -> mark# X, mark# length X -> active# length mark X)
     (mark# s X -> mark# X, mark# length X -> length# mark X)
     (mark# s X -> mark# X, mark# U71(X1, X2) -> mark# X1)
     (mark# s X -> mark# X, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# s X -> mark# X, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# s X -> mark# X, mark# nil() -> active# nil())
     (mark# s X -> mark# X, mark# U81 X -> mark# X)
     (mark# s X -> mark# X, mark# U81 X -> active# U81 mark X)
     (mark# s X -> mark# X, mark# U81 X -> U81# mark X)
     (mark# s X -> mark# X, mark# take(X1, X2) -> mark# X1)
     (mark# s X -> mark# X, mark# take(X1, X2) -> mark# X2)
     (mark# s X -> mark# X, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# s X -> mark# X, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# s X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# s X -> mark# X, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# s X -> mark# X, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# s X -> mark# X, mark# and(X1, X2) -> mark# X1)
     (mark# s X -> mark# X, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# s X -> mark# X, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# s X -> mark# X, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# s X -> mark# X, mark# isNatKind X -> active# isNatKind X)
     (mark# U53 X -> mark# X, mark# cons(X1, X2) -> mark# X1)
     (mark# U53 X -> mark# X, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# U53 X -> mark# X, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# U53 X -> mark# X, mark# 0() -> active# 0())
     (mark# U53 X -> mark# X, mark# zeros() -> active# zeros())
     (mark# U53 X -> mark# X, mark# U12 X -> mark# X)
     (mark# U53 X -> mark# X, mark# U12 X -> active# U12 mark X)
     (mark# U53 X -> mark# X, mark# U12 X -> U12# mark X)
     (mark# U53 X -> mark# X, mark# isNatList X -> active# isNatList X)
     (mark# U53 X -> mark# X, mark# U11(X1, X2) -> mark# X1)
     (mark# U53 X -> mark# X, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# U53 X -> mark# X, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# U53 X -> mark# X, mark# tt() -> active# tt())
     (mark# U53 X -> mark# X, mark# U22 X -> mark# X)
     (mark# U53 X -> mark# X, mark# U22 X -> active# U22 mark X)
     (mark# U53 X -> mark# X, mark# U22 X -> U22# mark X)
     (mark# U53 X -> mark# X, mark# isNat X -> active# isNat X)
     (mark# U53 X -> mark# X, mark# U21(X1, X2) -> mark# X1)
     (mark# U53 X -> mark# X, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# U53 X -> mark# X, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# U53 X -> mark# X, mark# U32 X -> mark# X)
     (mark# U53 X -> mark# X, mark# U32 X -> active# U32 mark X)
     (mark# U53 X -> mark# X, mark# U32 X -> U32# mark X)
     (mark# U53 X -> mark# X, mark# U31(X1, X2) -> mark# X1)
     (mark# U53 X -> mark# X, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# U53 X -> mark# X, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# U53 X -> mark# X, mark# U42(X1, X2) -> mark# X1)
     (mark# U53 X -> mark# X, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# U53 X -> mark# X, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# U53 X -> mark# X, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# U53 X -> mark# X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# U53 X -> mark# X, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# U53 X -> mark# X, mark# U43 X -> mark# X)
     (mark# U53 X -> mark# X, mark# U43 X -> active# U43 mark X)
     (mark# U53 X -> mark# X, mark# U43 X -> U43# mark X)
     (mark# U53 X -> mark# X, mark# isNatIList X -> active# isNatIList X)
     (mark# U53 X -> mark# X, mark# U52(X1, X2) -> mark# X1)
     (mark# U53 X -> mark# X, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# U53 X -> mark# X, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# U53 X -> mark# X, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# U53 X -> mark# X, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# U53 X -> mark# X, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# U53 X -> mark# X, mark# U53 X -> mark# X)
     (mark# U53 X -> mark# X, mark# U53 X -> active# U53 mark X)
     (mark# U53 X -> mark# X, mark# U53 X -> U53# mark X)
     (mark# U53 X -> mark# X, mark# U62(X1, X2) -> mark# X1)
     (mark# U53 X -> mark# X, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# U53 X -> mark# X, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# U53 X -> mark# X, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# U53 X -> mark# X, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# U53 X -> mark# X, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# U53 X -> mark# X, mark# U63 X -> mark# X)
     (mark# U53 X -> mark# X, mark# U63 X -> active# U63 mark X)
     (mark# U53 X -> mark# X, mark# U63 X -> U63# mark X)
     (mark# U53 X -> mark# X, mark# s X -> mark# X)
     (mark# U53 X -> mark# X, mark# s X -> active# s mark X)
     (mark# U53 X -> mark# X, mark# s X -> s# mark X)
     (mark# U53 X -> mark# X, mark# length X -> mark# X)
     (mark# U53 X -> mark# X, mark# length X -> active# length mark X)
     (mark# U53 X -> mark# X, mark# length X -> length# mark X)
     (mark# U53 X -> mark# X, mark# U71(X1, X2) -> mark# X1)
     (mark# U53 X -> mark# X, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# U53 X -> mark# X, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# U53 X -> mark# X, mark# nil() -> active# nil())
     (mark# U53 X -> mark# X, mark# U81 X -> mark# X)
     (mark# U53 X -> mark# X, mark# U81 X -> active# U81 mark X)
     (mark# U53 X -> mark# X, mark# U81 X -> U81# mark X)
     (mark# U53 X -> mark# X, mark# take(X1, X2) -> mark# X1)
     (mark# U53 X -> mark# X, mark# take(X1, X2) -> mark# X2)
     (mark# U53 X -> mark# X, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# U53 X -> mark# X, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# U53 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# U53 X -> mark# X, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# U53 X -> mark# X, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# U53 X -> mark# X, mark# and(X1, X2) -> mark# X1)
     (mark# U53 X -> mark# X, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# U53 X -> mark# X, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# U53 X -> mark# X, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# U53 X -> mark# X, mark# isNatKind X -> active# isNatKind X)
     (mark# U32 X -> mark# X, mark# cons(X1, X2) -> mark# X1)
     (mark# U32 X -> mark# X, mark# cons(X1, X2) -> cons#(mark X1, X2))
     (mark# U32 X -> mark# X, mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (mark# U32 X -> mark# X, mark# 0() -> active# 0())
     (mark# U32 X -> mark# X, mark# zeros() -> active# zeros())
     (mark# U32 X -> mark# X, mark# U12 X -> mark# X)
     (mark# U32 X -> mark# X, mark# U12 X -> active# U12 mark X)
     (mark# U32 X -> mark# X, mark# U12 X -> U12# mark X)
     (mark# U32 X -> mark# X, mark# isNatList X -> active# isNatList X)
     (mark# U32 X -> mark# X, mark# U11(X1, X2) -> mark# X1)
     (mark# U32 X -> mark# X, mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (mark# U32 X -> mark# X, mark# U11(X1, X2) -> U11#(mark X1, X2))
     (mark# U32 X -> mark# X, mark# tt() -> active# tt())
     (mark# U32 X -> mark# X, mark# U22 X -> mark# X)
     (mark# U32 X -> mark# X, mark# U22 X -> active# U22 mark X)
     (mark# U32 X -> mark# X, mark# U22 X -> U22# mark X)
     (mark# U32 X -> mark# X, mark# isNat X -> active# isNat X)
     (mark# U32 X -> mark# X, mark# U21(X1, X2) -> mark# X1)
     (mark# U32 X -> mark# X, mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (mark# U32 X -> mark# X, mark# U21(X1, X2) -> U21#(mark X1, X2))
     (mark# U32 X -> mark# X, mark# U32 X -> mark# X)
     (mark# U32 X -> mark# X, mark# U32 X -> active# U32 mark X)
     (mark# U32 X -> mark# X, mark# U32 X -> U32# mark X)
     (mark# U32 X -> mark# X, mark# U31(X1, X2) -> mark# X1)
     (mark# U32 X -> mark# X, mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (mark# U32 X -> mark# X, mark# U31(X1, X2) -> U31#(mark X1, X2))
     (mark# U32 X -> mark# X, mark# U42(X1, X2) -> mark# X1)
     (mark# U32 X -> mark# X, mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (mark# U32 X -> mark# X, mark# U42(X1, X2) -> U42#(mark X1, X2))
     (mark# U32 X -> mark# X, mark# U41(X1, X2, X3) -> mark# X1)
     (mark# U32 X -> mark# X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (mark# U32 X -> mark# X, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (mark# U32 X -> mark# X, mark# U43 X -> mark# X)
     (mark# U32 X -> mark# X, mark# U43 X -> active# U43 mark X)
     (mark# U32 X -> mark# X, mark# U43 X -> U43# mark X)
     (mark# U32 X -> mark# X, mark# isNatIList X -> active# isNatIList X)
     (mark# U32 X -> mark# X, mark# U52(X1, X2) -> mark# X1)
     (mark# U32 X -> mark# X, mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (mark# U32 X -> mark# X, mark# U52(X1, X2) -> U52#(mark X1, X2))
     (mark# U32 X -> mark# X, mark# U51(X1, X2, X3) -> mark# X1)
     (mark# U32 X -> mark# X, mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (mark# U32 X -> mark# X, mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (mark# U32 X -> mark# X, mark# U53 X -> mark# X)
     (mark# U32 X -> mark# X, mark# U53 X -> active# U53 mark X)
     (mark# U32 X -> mark# X, mark# U53 X -> U53# mark X)
     (mark# U32 X -> mark# X, mark# U62(X1, X2) -> mark# X1)
     (mark# U32 X -> mark# X, mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (mark# U32 X -> mark# X, mark# U62(X1, X2) -> U62#(mark X1, X2))
     (mark# U32 X -> mark# X, mark# U61(X1, X2, X3) -> mark# X1)
     (mark# U32 X -> mark# X, mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (mark# U32 X -> mark# X, mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (mark# U32 X -> mark# X, mark# U63 X -> mark# X)
     (mark# U32 X -> mark# X, mark# U63 X -> active# U63 mark X)
     (mark# U32 X -> mark# X, mark# U63 X -> U63# mark X)
     (mark# U32 X -> mark# X, mark# s X -> mark# X)
     (mark# U32 X -> mark# X, mark# s X -> active# s mark X)
     (mark# U32 X -> mark# X, mark# s X -> s# mark X)
     (mark# U32 X -> mark# X, mark# length X -> mark# X)
     (mark# U32 X -> mark# X, mark# length X -> active# length mark X)
     (mark# U32 X -> mark# X, mark# length X -> length# mark X)
     (mark# U32 X -> mark# X, mark# U71(X1, X2) -> mark# X1)
     (mark# U32 X -> mark# X, mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (mark# U32 X -> mark# X, mark# U71(X1, X2) -> U71#(mark X1, X2))
     (mark# U32 X -> mark# X, mark# nil() -> active# nil())
     (mark# U32 X -> mark# X, mark# U81 X -> mark# X)
     (mark# U32 X -> mark# X, mark# U81 X -> active# U81 mark X)
     (mark# U32 X -> mark# X, mark# U81 X -> U81# mark X)
     (mark# U32 X -> mark# X, mark# take(X1, X2) -> mark# X1)
     (mark# U32 X -> mark# X, mark# take(X1, X2) -> mark# X2)
     (mark# U32 X -> mark# X, mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (mark# U32 X -> mark# X, mark# take(X1, X2) -> take#(mark X1, mark X2))
     (mark# U32 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1)
     (mark# U32 X -> mark# X, mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (mark# U32 X -> mark# X, mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (mark# U32 X -> mark# X, mark# and(X1, X2) -> mark# X1)
     (mark# U32 X -> mark# X, mark# and(X1, X2) -> active# and(mark X1, X2))
     (mark# U32 X -> mark# X, mark# and(X1, X2) -> and#(mark X1, X2))
     (mark# U32 X -> mark# X, mark# isNatIListKind X -> active# isNatIListKind X)
     (mark# U32 X -> mark# X, mark# isNatKind X -> active# isNatKind X)
     (mark# tt() -> active# tt(), active# zeros() -> mark# cons(0(), zeros()))
     (mark# tt() -> active# tt(), active# zeros() -> cons#(0(), zeros()))
     (mark# tt() -> active# tt(), active# U12 tt() -> mark# tt())
     (mark# tt() -> active# tt(), active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# tt() -> active# tt(), active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# tt() -> active# tt(), active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# tt() -> active# tt(), active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# tt() -> active# tt(), active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# tt() -> active# tt(), active# isNatList nil() -> mark# tt())
     (mark# tt() -> active# tt(), active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# tt() -> active# tt(), active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# tt() -> active# tt(), active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# tt() -> active# tt(), active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# tt() -> active# tt(), active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# tt() -> active# tt(), active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# tt() -> active# tt(), active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# tt() -> active# tt(), active# U11(tt(), V1) -> isNatList# V1)
     (mark# tt() -> active# tt(), active# U22 tt() -> mark# tt())
     (mark# tt() -> active# tt(), active# isNat 0() -> mark# tt())
     (mark# tt() -> active# tt(), active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# tt() -> active# tt(), active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# tt() -> active# tt(), active# isNat s V1 -> isNatKind# V1)
     (mark# tt() -> active# tt(), active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# tt() -> active# tt(), active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# tt() -> active# tt(), active# isNat length V1 -> isNatIListKind# V1)
     (mark# tt() -> active# tt(), active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# tt() -> active# tt(), active# U21(tt(), V1) -> U22# isNat V1)
     (mark# tt() -> active# tt(), active# U21(tt(), V1) -> isNat# V1)
     (mark# tt() -> active# tt(), active# U32 tt() -> mark# tt())
     (mark# tt() -> active# tt(), active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# tt() -> active# tt(), active# U31(tt(), V) -> isNatList# V)
     (mark# tt() -> active# tt(), active# U31(tt(), V) -> U32# isNatList V)
     (mark# tt() -> active# tt(), active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# tt() -> active# tt(), active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# tt() -> active# tt(), active# U42(tt(), V2) -> isNatIList# V2)
     (mark# tt() -> active# tt(), active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# tt() -> active# tt(), active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# tt() -> active# tt(), active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# tt() -> active# tt(), active# U43 tt() -> mark# tt())
     (mark# tt() -> active# tt(), active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# tt() -> active# tt(), active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# tt() -> active# tt(), active# isNatIList V -> isNatIListKind# V)
     (mark# tt() -> active# tt(), active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# tt() -> active# tt(), active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# tt() -> active# tt(), active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# tt() -> active# tt(), active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# tt() -> active# tt(), active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# tt() -> active# tt(), active# isNatIList zeros() -> mark# tt())
     (mark# tt() -> active# tt(), active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# tt() -> active# tt(), active# U52(tt(), V2) -> isNatList# V2)
     (mark# tt() -> active# tt(), active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# tt() -> active# tt(), active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# tt() -> active# tt(), active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# tt() -> active# tt(), active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# tt() -> active# tt(), active# U53 tt() -> mark# tt())
     (mark# tt() -> active# tt(), active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# tt() -> active# tt(), active# U62(tt(), V2) -> isNatIList# V2)
     (mark# tt() -> active# tt(), active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# tt() -> active# tt(), active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# tt() -> active# tt(), active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# tt() -> active# tt(), active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# tt() -> active# tt(), active# U63 tt() -> mark# tt())
     (mark# tt() -> active# tt(), active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# tt() -> active# tt(), active# length cons(N, L) -> isNatList# L)
     (mark# tt() -> active# tt(), active# length cons(N, L) -> isNat# N)
     (mark# tt() -> active# tt(), active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# tt() -> active# tt(), active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# tt() -> active# tt(), active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# tt() -> active# tt(), active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# tt() -> active# tt(), active# length cons(N, L) -> isNatIListKind# L)
     (mark# tt() -> active# tt(), active# length cons(N, L) -> isNatKind# N)
     (mark# tt() -> active# tt(), active# length nil() -> mark# 0())
     (mark# tt() -> active# tt(), active# U71(tt(), L) -> mark# s length L)
     (mark# tt() -> active# tt(), active# U71(tt(), L) -> s# length L)
     (mark# tt() -> active# tt(), active# U71(tt(), L) -> length# L)
     (mark# tt() -> active# tt(), active# U81 tt() -> mark# nil())
     (mark# tt() -> active# tt(), active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# tt() -> active# tt(), active# take(0(), IL) -> isNatIList# IL)
     (mark# tt() -> active# tt(), active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# tt() -> active# tt(), active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# tt() -> active# tt(), active# take(0(), IL) -> isNatIListKind# IL)
     (mark# tt() -> active# tt(), active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# tt() -> active# tt(), active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# tt() -> active# tt(), active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# tt() -> active# tt(), active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# tt() -> active# tt(), active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# tt() -> active# tt(), active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# tt() -> active# tt(), active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# tt() -> active# tt(), active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# tt() -> active# tt(), active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# tt() -> active# tt(), active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# tt() -> active# tt(), active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# tt() -> active# tt(), active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# tt() -> active# tt(), active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# tt() -> active# tt(), active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# tt() -> active# tt(), active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# tt() -> active# tt(), active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# tt() -> active# tt(), active# and(tt(), X) -> mark# X)
     (mark# tt() -> active# tt(), active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# tt() -> active# tt(), active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# tt() -> active# tt(), active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# tt() -> active# tt(), active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# tt() -> active# tt(), active# isNatIListKind zeros() -> mark# tt())
     (mark# tt() -> active# tt(), active# isNatIListKind nil() -> mark# tt())
     (mark# tt() -> active# tt(), active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# tt() -> active# tt(), active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# tt() -> active# tt(), active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# tt() -> active# tt(), active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# tt() -> active# tt(), active# isNatKind 0() -> mark# tt())
     (mark# tt() -> active# tt(), active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# tt() -> active# tt(), active# isNatKind s V1 -> isNatKind# V1)
     (mark# tt() -> active# tt(), active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# tt() -> active# tt(), active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# zeros() -> active# zeros(), active# zeros() -> mark# cons(0(), zeros()))
     (mark# zeros() -> active# zeros(), active# zeros() -> cons#(0(), zeros()))
     (mark# zeros() -> active# zeros(), active# U12 tt() -> mark# tt())
     (mark# zeros() -> active# zeros(), active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# zeros() -> active# zeros(), active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# zeros() -> active# zeros(), active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# zeros() -> active# zeros(), active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# zeros() -> active# zeros(), active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# zeros() -> active# zeros(), active# isNatList nil() -> mark# tt())
     (mark# zeros() -> active# zeros(), active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# zeros() -> active# zeros(), active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# zeros() -> active# zeros(), active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# zeros() -> active# zeros(), active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# zeros() -> active# zeros(), active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# zeros() -> active# zeros(), active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# zeros() -> active# zeros(), active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# zeros() -> active# zeros(), active# U11(tt(), V1) -> isNatList# V1)
     (mark# zeros() -> active# zeros(), active# U22 tt() -> mark# tt())
     (mark# zeros() -> active# zeros(), active# isNat 0() -> mark# tt())
     (mark# zeros() -> active# zeros(), active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# zeros() -> active# zeros(), active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# zeros() -> active# zeros(), active# isNat s V1 -> isNatKind# V1)
     (mark# zeros() -> active# zeros(), active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# zeros() -> active# zeros(), active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# zeros() -> active# zeros(), active# isNat length V1 -> isNatIListKind# V1)
     (mark# zeros() -> active# zeros(), active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# zeros() -> active# zeros(), active# U21(tt(), V1) -> U22# isNat V1)
     (mark# zeros() -> active# zeros(), active# U21(tt(), V1) -> isNat# V1)
     (mark# zeros() -> active# zeros(), active# U32 tt() -> mark# tt())
     (mark# zeros() -> active# zeros(), active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# zeros() -> active# zeros(), active# U31(tt(), V) -> isNatList# V)
     (mark# zeros() -> active# zeros(), active# U31(tt(), V) -> U32# isNatList V)
     (mark# zeros() -> active# zeros(), active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# zeros() -> active# zeros(), active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# zeros() -> active# zeros(), active# U42(tt(), V2) -> isNatIList# V2)
     (mark# zeros() -> active# zeros(), active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# zeros() -> active# zeros(), active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# zeros() -> active# zeros(), active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# zeros() -> active# zeros(), active# U43 tt() -> mark# tt())
     (mark# zeros() -> active# zeros(), active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# zeros() -> active# zeros(), active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# zeros() -> active# zeros(), active# isNatIList V -> isNatIListKind# V)
     (mark# zeros() -> active# zeros(), active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# zeros() -> active# zeros(), active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# zeros() -> active# zeros(), active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# zeros() -> active# zeros(), active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# zeros() -> active# zeros(), active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# zeros() -> active# zeros(), active# isNatIList zeros() -> mark# tt())
     (mark# zeros() -> active# zeros(), active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# zeros() -> active# zeros(), active# U52(tt(), V2) -> isNatList# V2)
     (mark# zeros() -> active# zeros(), active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# zeros() -> active# zeros(), active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# zeros() -> active# zeros(), active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# zeros() -> active# zeros(), active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# zeros() -> active# zeros(), active# U53 tt() -> mark# tt())
     (mark# zeros() -> active# zeros(), active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# zeros() -> active# zeros(), active# U62(tt(), V2) -> isNatIList# V2)
     (mark# zeros() -> active# zeros(), active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# zeros() -> active# zeros(), active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# zeros() -> active# zeros(), active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# zeros() -> active# zeros(), active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# zeros() -> active# zeros(), active# U63 tt() -> mark# tt())
     (mark# zeros() -> active# zeros(), active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# zeros() -> active# zeros(), active# length cons(N, L) -> isNatList# L)
     (mark# zeros() -> active# zeros(), active# length cons(N, L) -> isNat# N)
     (mark# zeros() -> active# zeros(), active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# zeros() -> active# zeros(), active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# zeros() -> active# zeros(), active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# zeros() -> active# zeros(), active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# zeros() -> active# zeros(), active# length cons(N, L) -> isNatIListKind# L)
     (mark# zeros() -> active# zeros(), active# length cons(N, L) -> isNatKind# N)
     (mark# zeros() -> active# zeros(), active# length nil() -> mark# 0())
     (mark# zeros() -> active# zeros(), active# U71(tt(), L) -> mark# s length L)
     (mark# zeros() -> active# zeros(), active# U71(tt(), L) -> s# length L)
     (mark# zeros() -> active# zeros(), active# U71(tt(), L) -> length# L)
     (mark# zeros() -> active# zeros(), active# U81 tt() -> mark# nil())
     (mark# zeros() -> active# zeros(), active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# zeros() -> active# zeros(), active# take(0(), IL) -> isNatIList# IL)
     (mark# zeros() -> active# zeros(), active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# zeros() -> active# zeros(), active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# zeros() -> active# zeros(), active# take(0(), IL) -> isNatIListKind# IL)
     (mark# zeros() -> active# zeros(), active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# zeros() -> active# zeros(), active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# zeros() -> active# zeros(), active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# zeros() -> active# zeros(), active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# zeros() -> active# zeros(), active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# zeros() -> active# zeros(), active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# zeros() -> active# zeros(), active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# zeros() -> active# zeros(), active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# zeros() -> active# zeros(), active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# zeros() -> active# zeros(), active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# zeros() -> active# zeros(), active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# zeros() -> active# zeros(), active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# zeros() -> active# zeros(), active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# zeros() -> active# zeros(), active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# zeros() -> active# zeros(), active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# zeros() -> active# zeros(), active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# zeros() -> active# zeros(), active# and(tt(), X) -> mark# X)
     (mark# zeros() -> active# zeros(), active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# zeros() -> active# zeros(), active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# zeros() -> active# zeros(), active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# zeros() -> active# zeros(), active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# zeros() -> active# zeros(), active# isNatIListKind zeros() -> mark# tt())
     (mark# zeros() -> active# zeros(), active# isNatIListKind nil() -> mark# tt())
     (mark# zeros() -> active# zeros(), active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# zeros() -> active# zeros(), active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# zeros() -> active# zeros(), active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# zeros() -> active# zeros(), active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# zeros() -> active# zeros(), active# isNatKind 0() -> mark# tt())
     (mark# zeros() -> active# zeros(), active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# zeros() -> active# zeros(), active# isNatKind s V1 -> isNatKind# V1)
     (mark# zeros() -> active# zeros(), active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# zeros() -> active# zeros(), active# isNatKind length V1 -> isNatIListKind# V1)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# cons(X1, X2) -> mark# X1)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# 0() -> active# 0())
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# zeros() -> active# zeros())
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U12 X -> mark# X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U12 X -> active# U12 mark X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U12 X -> U12# mark X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# isNatList X -> active# isNatList X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U11(X1, X2) -> mark# X1)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# tt() -> active# tt())
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U22 X -> mark# X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U22 X -> active# U22 mark X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U22 X -> U22# mark X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# isNat X -> active# isNat X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U21(X1, X2) -> mark# X1)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U32 X -> mark# X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U32 X -> active# U32 mark X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U32 X -> U32# mark X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U31(X1, X2) -> mark# X1)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U42(X1, X2) -> mark# X1)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U41(X1, X2, X3) -> mark# X1)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U43 X -> mark# X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U43 X -> active# U43 mark X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U43 X -> U43# mark X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# isNatIList X -> active# isNatIList X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U52(X1, X2) -> mark# X1)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U51(X1, X2, X3) -> mark# X1)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U53 X -> mark# X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U53 X -> active# U53 mark X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U53 X -> U53# mark X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U62(X1, X2) -> mark# X1)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U61(X1, X2, X3) -> mark# X1)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U63 X -> mark# X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U63 X -> active# U63 mark X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U63 X -> U63# mark X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# s X -> mark# X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# s X -> active# s mark X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# s X -> s# mark X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# length X -> mark# X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# length X -> active# length mark X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# length X -> length# mark X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U71(X1, X2) -> mark# X1)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# nil() -> active# nil())
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U81 X -> mark# X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U81 X -> active# U81 mark X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U81 X -> U81# mark X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# take(X1, X2) -> mark# X1)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# take(X1, X2) -> mark# X2)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# and(X1, X2) -> mark# X1)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2), mark# isNatKind X -> active# isNatKind X)
     (active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL), U81# mark X -> U81# X)
     (active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL), U81# active X -> U81# X)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# zeros() -> mark# cons(0(), zeros()))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# zeros() -> cons#(0(), zeros()))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U12 tt() -> mark# tt())
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatList nil() -> mark# tt())
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U11(tt(), V1) -> isNatList# V1)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U22 tt() -> mark# tt())
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNat 0() -> mark# tt())
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNat s V1 -> isNatKind# V1)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNat length V1 -> isNatIListKind# V1)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U21(tt(), V1) -> U22# isNat V1)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U21(tt(), V1) -> isNat# V1)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U32 tt() -> mark# tt())
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U31(tt(), V) -> isNatList# V)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U31(tt(), V) -> U32# isNatList V)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U42(tt(), V2) -> isNatIList# V2)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U43 tt() -> mark# tt())
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatIList V -> isNatIListKind# V)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatIList zeros() -> mark# tt())
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U52(tt(), V2) -> isNatList# V2)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U53 tt() -> mark# tt())
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U62(tt(), V2) -> isNatIList# V2)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U63 tt() -> mark# tt())
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# length cons(N, L) -> isNatList# L)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# length cons(N, L) -> isNat# N)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# length cons(N, L) -> isNatIListKind# L)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# length cons(N, L) -> isNatKind# N)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# length nil() -> mark# 0())
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U71(tt(), L) -> mark# s length L)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U71(tt(), L) -> s# length L)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U71(tt(), L) -> length# L)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U81 tt() -> mark# nil())
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# take(0(), IL) -> isNatIList# IL)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# take(0(), IL) -> isNatIListKind# IL)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# and(tt(), X) -> mark# X)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatIListKind zeros() -> mark# tt())
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatIListKind nil() -> mark# tt())
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatKind 0() -> mark# tt())
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatKind s V1 -> isNatKind# V1)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# isNatKind length V1 -> isNatIListKind# V1)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# cons(X1, X2) -> mark# X1)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# 0() -> active# 0())
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# zeros() -> active# zeros())
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U12 X -> mark# X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U12 X -> active# U12 mark X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U12 X -> U12# mark X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# isNatList X -> active# isNatList X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U11(X1, X2) -> mark# X1)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# tt() -> active# tt())
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U22 X -> mark# X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U22 X -> active# U22 mark X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U22 X -> U22# mark X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# isNat X -> active# isNat X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U21(X1, X2) -> mark# X1)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U32 X -> mark# X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U32 X -> active# U32 mark X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U32 X -> U32# mark X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U31(X1, X2) -> mark# X1)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U42(X1, X2) -> mark# X1)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U41(X1, X2, X3) -> mark# X1)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U43 X -> mark# X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U43 X -> active# U43 mark X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U43 X -> U43# mark X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# isNatIList X -> active# isNatIList X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U52(X1, X2) -> mark# X1)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U51(X1, X2, X3) -> mark# X1)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U53 X -> mark# X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U53 X -> active# U53 mark X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U53 X -> U53# mark X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U62(X1, X2) -> mark# X1)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U61(X1, X2, X3) -> mark# X1)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U63 X -> mark# X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U63 X -> active# U63 mark X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U63 X -> U63# mark X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# s X -> mark# X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# s X -> active# s mark X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# s X -> s# mark X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# length X -> mark# X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# length X -> active# length mark X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# length X -> length# mark X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U71(X1, X2) -> mark# X1)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# nil() -> active# nil())
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U81 X -> mark# X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U81 X -> active# U81 mark X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U81 X -> U81# mark X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# take(X1, X2) -> mark# X1)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# take(X1, X2) -> mark# X2)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# and(X1, X2) -> mark# X1)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2), mark# isNatKind X -> active# isNatKind X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# cons(X1, X2) -> mark# X1)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# 0() -> active# 0())
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# zeros() -> active# zeros())
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U12 X -> mark# X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U12 X -> active# U12 mark X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U12 X -> U12# mark X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# isNatList X -> active# isNatList X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U11(X1, X2) -> mark# X1)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# tt() -> active# tt())
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U22 X -> mark# X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U22 X -> active# U22 mark X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U22 X -> U22# mark X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# isNat X -> active# isNat X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U21(X1, X2) -> mark# X1)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U32 X -> mark# X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U32 X -> active# U32 mark X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U32 X -> U32# mark X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U31(X1, X2) -> mark# X1)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U42(X1, X2) -> mark# X1)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U41(X1, X2, X3) -> mark# X1)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U43 X -> mark# X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U43 X -> active# U43 mark X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U43 X -> U43# mark X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# isNatIList X -> active# isNatIList X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U52(X1, X2) -> mark# X1)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U51(X1, X2, X3) -> mark# X1)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U53 X -> mark# X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U53 X -> active# U53 mark X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U53 X -> U53# mark X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U62(X1, X2) -> mark# X1)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U61(X1, X2, X3) -> mark# X1)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U63 X -> mark# X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U63 X -> active# U63 mark X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U63 X -> U63# mark X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# s X -> mark# X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# s X -> active# s mark X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# s X -> s# mark X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# length X -> mark# X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# length X -> active# length mark X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# length X -> length# mark X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U71(X1, X2) -> mark# X1)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# nil() -> active# nil())
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U81 X -> mark# X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U81 X -> active# U81 mark X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U81 X -> U81# mark X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# take(X1, X2) -> mark# X1)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# take(X1, X2) -> mark# X2)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# and(X1, X2) -> mark# X1)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# isNatIList V -> mark# U31(isNatIListKind V, V), mark# isNatKind X -> active# isNatKind X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# cons(X1, X2) -> mark# X1)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# 0() -> active# 0())
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# zeros() -> active# zeros())
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U12 X -> mark# X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U12 X -> active# U12 mark X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U12 X -> U12# mark X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# isNatList X -> active# isNatList X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U11(X1, X2) -> mark# X1)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# tt() -> active# tt())
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U22 X -> mark# X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U22 X -> active# U22 mark X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U22 X -> U22# mark X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# isNat X -> active# isNat X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U21(X1, X2) -> mark# X1)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U32 X -> mark# X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U32 X -> active# U32 mark X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U32 X -> U32# mark X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U31(X1, X2) -> mark# X1)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U42(X1, X2) -> mark# X1)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U41(X1, X2, X3) -> mark# X1)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U43 X -> mark# X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U43 X -> active# U43 mark X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U43 X -> U43# mark X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# isNatIList X -> active# isNatIList X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U52(X1, X2) -> mark# X1)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U51(X1, X2, X3) -> mark# X1)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U53 X -> mark# X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U53 X -> active# U53 mark X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U53 X -> U53# mark X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U62(X1, X2) -> mark# X1)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U61(X1, X2, X3) -> mark# X1)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U63 X -> mark# X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U63 X -> active# U63 mark X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U63 X -> U63# mark X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# s X -> mark# X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# s X -> active# s mark X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# s X -> s# mark X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# length X -> mark# X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# length X -> active# length mark X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# length X -> length# mark X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U71(X1, X2) -> mark# X1)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# nil() -> active# nil())
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U81 X -> mark# X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U81 X -> active# U81 mark X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U81 X -> U81# mark X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# take(X1, X2) -> mark# X1)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# take(X1, X2) -> mark# X2)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# and(X1, X2) -> mark# X1)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# isNat length V1 -> mark# U11(isNatIListKind V1, V1), mark# isNatKind X -> active# isNatKind X)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# zeros() -> mark# cons(0(), zeros()))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# zeros() -> cons#(0(), zeros()))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U12 tt() -> mark# tt())
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatList nil() -> mark# tt())
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U11(tt(), V1) -> isNatList# V1)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U22 tt() -> mark# tt())
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNat 0() -> mark# tt())
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNat s V1 -> isNatKind# V1)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNat length V1 -> isNatIListKind# V1)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U21(tt(), V1) -> U22# isNat V1)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U21(tt(), V1) -> isNat# V1)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U32 tt() -> mark# tt())
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U31(tt(), V) -> isNatList# V)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U31(tt(), V) -> U32# isNatList V)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U42(tt(), V2) -> isNatIList# V2)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U43 tt() -> mark# tt())
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatIList V -> isNatIListKind# V)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatIList zeros() -> mark# tt())
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U52(tt(), V2) -> isNatList# V2)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U53 tt() -> mark# tt())
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U62(tt(), V2) -> isNatIList# V2)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U63 tt() -> mark# tt())
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# length cons(N, L) -> isNatList# L)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# length cons(N, L) -> isNat# N)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# length cons(N, L) -> isNatIListKind# L)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# length cons(N, L) -> isNatKind# N)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# length nil() -> mark# 0())
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U71(tt(), L) -> mark# s length L)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U71(tt(), L) -> s# length L)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U71(tt(), L) -> length# L)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U81 tt() -> mark# nil())
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# take(0(), IL) -> isNatIList# IL)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# take(0(), IL) -> isNatIListKind# IL)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# and(tt(), X) -> mark# X)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatIListKind zeros() -> mark# tt())
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatIListKind nil() -> mark# tt())
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatKind 0() -> mark# tt())
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatKind s V1 -> isNatKind# V1)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# zeros() -> mark# cons(0(), zeros()))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# zeros() -> cons#(0(), zeros()))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U12 tt() -> mark# tt())
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatList nil() -> mark# tt())
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U11(tt(), V1) -> isNatList# V1)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U22 tt() -> mark# tt())
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNat 0() -> mark# tt())
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNat s V1 -> isNatKind# V1)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNat length V1 -> isNatIListKind# V1)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U21(tt(), V1) -> U22# isNat V1)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U21(tt(), V1) -> isNat# V1)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U32 tt() -> mark# tt())
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U31(tt(), V) -> isNatList# V)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U31(tt(), V) -> U32# isNatList V)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U42(tt(), V2) -> isNatIList# V2)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U43 tt() -> mark# tt())
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatIList V -> isNatIListKind# V)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatIList zeros() -> mark# tt())
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U52(tt(), V2) -> isNatList# V2)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U53 tt() -> mark# tt())
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U62(tt(), V2) -> isNatIList# V2)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U63 tt() -> mark# tt())
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# length cons(N, L) -> isNatList# L)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# length cons(N, L) -> isNat# N)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# length cons(N, L) -> isNatIListKind# L)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# length cons(N, L) -> isNatKind# N)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# length nil() -> mark# 0())
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U71(tt(), L) -> mark# s length L)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U71(tt(), L) -> s# length L)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U71(tt(), L) -> length# L)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U81 tt() -> mark# nil())
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# take(0(), IL) -> isNatIList# IL)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# take(0(), IL) -> isNatIListKind# IL)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# and(tt(), X) -> mark# X)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatIListKind zeros() -> mark# tt())
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatIListKind nil() -> mark# tt())
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatKind 0() -> mark# tt())
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatKind s V1 -> isNatKind# V1)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# U62(X1, X2) -> active# U62(mark X1, X2), active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# zeros() -> mark# cons(0(), zeros()))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# zeros() -> cons#(0(), zeros()))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U12 tt() -> mark# tt())
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatList nil() -> mark# tt())
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U11(tt(), V1) -> isNatList# V1)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U22 tt() -> mark# tt())
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNat 0() -> mark# tt())
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNat s V1 -> isNatKind# V1)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNat length V1 -> isNatIListKind# V1)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U21(tt(), V1) -> U22# isNat V1)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U21(tt(), V1) -> isNat# V1)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U32 tt() -> mark# tt())
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U31(tt(), V) -> isNatList# V)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U31(tt(), V) -> U32# isNatList V)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U42(tt(), V2) -> isNatIList# V2)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U43 tt() -> mark# tt())
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatIList V -> isNatIListKind# V)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatIList zeros() -> mark# tt())
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U52(tt(), V2) -> isNatList# V2)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U53 tt() -> mark# tt())
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U62(tt(), V2) -> isNatIList# V2)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U63 tt() -> mark# tt())
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# length cons(N, L) -> isNatList# L)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# length cons(N, L) -> isNat# N)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# length cons(N, L) -> isNatIListKind# L)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# length cons(N, L) -> isNatKind# N)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# length nil() -> mark# 0())
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U71(tt(), L) -> mark# s length L)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U71(tt(), L) -> s# length L)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U71(tt(), L) -> length# L)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U81 tt() -> mark# nil())
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# take(0(), IL) -> isNatIList# IL)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# take(0(), IL) -> isNatIListKind# IL)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# and(tt(), X) -> mark# X)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatIListKind zeros() -> mark# tt())
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatIListKind nil() -> mark# tt())
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatKind 0() -> mark# tt())
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatKind s V1 -> isNatKind# V1)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# U42(X1, X2) -> active# U42(mark X1, X2), active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# zeros() -> mark# cons(0(), zeros()))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# zeros() -> cons#(0(), zeros()))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U12 tt() -> mark# tt())
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatList nil() -> mark# tt())
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U11(tt(), V1) -> isNatList# V1)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U22 tt() -> mark# tt())
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNat 0() -> mark# tt())
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNat s V1 -> isNatKind# V1)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNat length V1 -> isNatIListKind# V1)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U21(tt(), V1) -> U22# isNat V1)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U21(tt(), V1) -> isNat# V1)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U32 tt() -> mark# tt())
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U31(tt(), V) -> isNatList# V)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U31(tt(), V) -> U32# isNatList V)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U42(tt(), V2) -> isNatIList# V2)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U43 tt() -> mark# tt())
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatIList V -> isNatIListKind# V)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatIList zeros() -> mark# tt())
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U52(tt(), V2) -> isNatList# V2)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U53 tt() -> mark# tt())
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U62(tt(), V2) -> isNatIList# V2)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U63 tt() -> mark# tt())
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# length cons(N, L) -> isNatList# L)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# length cons(N, L) -> isNat# N)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# length cons(N, L) -> isNatIListKind# L)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# length cons(N, L) -> isNatKind# N)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# length nil() -> mark# 0())
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U71(tt(), L) -> mark# s length L)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U71(tt(), L) -> s# length L)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U71(tt(), L) -> length# L)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U81 tt() -> mark# nil())
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# take(0(), IL) -> isNatIList# IL)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# take(0(), IL) -> isNatIListKind# IL)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# and(tt(), X) -> mark# X)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatIListKind zeros() -> mark# tt())
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatIListKind nil() -> mark# tt())
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatKind 0() -> mark# tt())
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatKind s V1 -> isNatKind# V1)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# zeros() -> mark# cons(0(), zeros()))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# zeros() -> cons#(0(), zeros()))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U12 tt() -> mark# tt())
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatList nil() -> mark# tt())
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U11(tt(), V1) -> isNatList# V1)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U22 tt() -> mark# tt())
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNat 0() -> mark# tt())
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNat s V1 -> isNatKind# V1)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNat length V1 -> isNatIListKind# V1)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U21(tt(), V1) -> U22# isNat V1)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U21(tt(), V1) -> isNat# V1)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U32 tt() -> mark# tt())
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U31(tt(), V) -> isNatList# V)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U31(tt(), V) -> U32# isNatList V)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U42(tt(), V2) -> isNatIList# V2)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U43 tt() -> mark# tt())
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatIList V -> isNatIListKind# V)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatIList zeros() -> mark# tt())
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U52(tt(), V2) -> isNatList# V2)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U53 tt() -> mark# tt())
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U62(tt(), V2) -> isNatIList# V2)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U63 tt() -> mark# tt())
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# length cons(N, L) -> isNatList# L)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# length cons(N, L) -> isNat# N)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# length cons(N, L) -> isNatIListKind# L)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# length cons(N, L) -> isNatKind# N)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# length nil() -> mark# 0())
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U71(tt(), L) -> mark# s length L)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U71(tt(), L) -> s# length L)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U71(tt(), L) -> length# L)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U81 tt() -> mark# nil())
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# take(0(), IL) -> isNatIList# IL)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# take(0(), IL) -> isNatIListKind# IL)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# and(tt(), X) -> mark# X)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatIListKind zeros() -> mark# tt())
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatIListKind nil() -> mark# tt())
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatKind 0() -> mark# tt())
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatKind s V1 -> isNatKind# V1)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# isNatKind length V1 -> isNatIListKind# V1)
     (active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2, isNatIListKind# mark X -> isNatIListKind# X)
     (active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2, isNatIListKind# active X -> isNatIListKind# X)
     (active# U52(tt(), V2) -> isNatList# V2, isNatList# mark X -> isNatList# X)
     (active# U52(tt(), V2) -> isNatList# V2, isNatList# active X -> isNatList# X)
     (active# U42(tt(), V2) -> isNatIList# V2, isNatIList# mark X -> isNatIList# X)
     (active# U42(tt(), V2) -> isNatIList# V2, isNatIList# active X -> isNatIList# X)
     (active# isNatList cons(V1, V2) -> isNatIListKind# V2, isNatIListKind# mark X -> isNatIListKind# X)
     (active# isNatList cons(V1, V2) -> isNatIListKind# V2, isNatIListKind# active X -> isNatIListKind# X)
     (active# U51(tt(), V1, V2) -> U52#(isNat V1, V2), U52#(X1, mark X2) -> U52#(X1, X2))
     (active# U51(tt(), V1, V2) -> U52#(isNat V1, V2), U52#(X1, active X2) -> U52#(X1, X2))
     (active# U51(tt(), V1, V2) -> U52#(isNat V1, V2), U52#(mark X1, X2) -> U52#(X1, X2))
     (active# U51(tt(), V1, V2) -> U52#(isNat V1, V2), U52#(active X1, X2) -> U52#(X1, X2))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# cons(X1, X2) -> mark# X1)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# 0() -> active# 0())
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# zeros() -> active# zeros())
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U12 X -> mark# X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U12 X -> active# U12 mark X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U12 X -> U12# mark X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# isNatList X -> active# isNatList X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U11(X1, X2) -> mark# X1)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# tt() -> active# tt())
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U22 X -> mark# X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U22 X -> active# U22 mark X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U22 X -> U22# mark X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# isNat X -> active# isNat X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U21(X1, X2) -> mark# X1)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U32 X -> mark# X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U32 X -> active# U32 mark X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U32 X -> U32# mark X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U31(X1, X2) -> mark# X1)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U42(X1, X2) -> mark# X1)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U41(X1, X2, X3) -> mark# X1)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U43 X -> mark# X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U43 X -> active# U43 mark X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U43 X -> U43# mark X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# isNatIList X -> active# isNatIList X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U52(X1, X2) -> mark# X1)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U51(X1, X2, X3) -> mark# X1)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U53 X -> mark# X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U53 X -> active# U53 mark X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U53 X -> U53# mark X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U62(X1, X2) -> mark# X1)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U61(X1, X2, X3) -> mark# X1)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U63 X -> mark# X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U63 X -> active# U63 mark X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U63 X -> U63# mark X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# s X -> mark# X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# s X -> active# s mark X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# s X -> s# mark X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# length X -> mark# X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# length X -> active# length mark X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# length X -> length# mark X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U71(X1, X2) -> mark# X1)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# nil() -> active# nil())
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U81 X -> mark# X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U81 X -> active# U81 mark X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U81 X -> U81# mark X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# take(X1, X2) -> mark# X1)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# take(X1, X2) -> mark# X2)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# and(X1, X2) -> mark# X1)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# isNatKind X -> active# isNatKind X)
     (active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(X1, mark X2) -> and#(X1, X2))
     (active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(X1, active X2) -> and#(X1, X2))
     (active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(mark X1, X2) -> and#(X1, X2))
     (active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(active X1, X2) -> and#(X1, X2))
     (active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M), and#(X1, mark X2) -> and#(X1, X2))
     (active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M), and#(X1, active X2) -> and#(X1, X2))
     (active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M), and#(mark X1, X2) -> and#(X1, X2))
     (active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M), and#(active X1, X2) -> and#(X1, X2))
     (active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL), and#(X1, mark X2) -> and#(X1, X2))
     (active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL), and#(X1, active X2) -> and#(X1, X2))
     (active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL), and#(mark X1, X2) -> and#(X1, X2))
     (active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL), and#(active X1, X2) -> and#(X1, X2))
     (active# length cons(N, L) -> and#(isNatList L, isNatIListKind L), and#(X1, mark X2) -> and#(X1, X2))
     (active# length cons(N, L) -> and#(isNatList L, isNatIListKind L), and#(X1, active X2) -> and#(X1, X2))
     (active# length cons(N, L) -> and#(isNatList L, isNatIListKind L), and#(mark X1, X2) -> and#(X1, X2))
     (active# length cons(N, L) -> and#(isNatList L, isNatIListKind L), and#(active X1, X2) -> and#(X1, X2))
     (active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(X1, mark X2) -> and#(X1, X2))
     (active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(X1, active X2) -> and#(X1, X2))
     (active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(mark X1, X2) -> and#(X1, X2))
     (active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(active X1, X2) -> and#(X1, X2))
     (mark# take(X1, X2) -> take#(mark X1, mark X2), take#(X1, mark X2) -> take#(X1, X2))
     (mark# take(X1, X2) -> take#(mark X1, mark X2), take#(X1, active X2) -> take#(X1, X2))
     (mark# take(X1, X2) -> take#(mark X1, mark X2), take#(mark X1, X2) -> take#(X1, X2))
     (mark# take(X1, X2) -> take#(mark X1, mark X2), take#(active X1, X2) -> take#(X1, X2))
     (active# take(s M, cons(N, IL)) -> isNatIList# IL, isNatIList# mark X -> isNatIList# X)
     (active# take(s M, cons(N, IL)) -> isNatIList# IL, isNatIList# active X -> isNatIList# X)
     (active# take(0(), IL) -> isNatIList# IL, isNatIList# mark X -> isNatIList# X)
     (active# take(0(), IL) -> isNatIList# IL, isNatIList# active X -> isNatIList# X)
     (U91#(active X1, X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, X3, mark X4) -> U91#(X1, X2, X3, X4))
     (U91#(active X1, X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, X3, active X4) -> U91#(X1, X2, X3, X4))
     (U91#(active X1, X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, mark X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(active X1, X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, active X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(active X1, X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, mark X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(active X1, X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, active X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(active X1, X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(active X1, X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(active X1, X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, active X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, X3, mark X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, active X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, X3, active X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, active X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, mark X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, active X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, active X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, active X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, mark X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, active X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, active X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, active X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, active X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(active X1, X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, active X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, X3, mark X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, active X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, X3, active X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, active X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, mark X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, active X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, active X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, active X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, mark X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, active X3, X4) -> U91#(X1, X2, X3, X4), U91#(X1, active X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, active X3, X4) -> U91#(X1, X2, X3, X4), U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, active X3, X4) -> U91#(X1, X2, X3, X4), U91#(active X1, X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, X3, active X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, X3, mark X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, X3, active X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, X3, active X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, X3, active X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, mark X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, X3, active X4) -> U91#(X1, X2, X3, X4), U91#(X1, X2, active X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, X3, active X4) -> U91#(X1, X2, X3, X4), U91#(X1, mark X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, X3, active X4) -> U91#(X1, X2, X3, X4), U91#(X1, active X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, X3, active X4) -> U91#(X1, X2, X3, X4), U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (U91#(X1, X2, X3, active X4) -> U91#(X1, X2, X3, X4), U91#(active X1, X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4), U91#(X1, X2, X3, mark X4) -> U91#(X1, X2, X3, X4))
     (mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4), U91#(X1, X2, X3, active X4) -> U91#(X1, X2, X3, X4))
     (mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4), U91#(X1, X2, mark X3, X4) -> U91#(X1, X2, X3, X4))
     (mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4), U91#(X1, X2, active X3, X4) -> U91#(X1, X2, X3, X4))
     (mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4), U91#(X1, mark X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4), U91#(X1, active X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4), U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4), U91#(active X1, X2, X3, X4) -> U91#(X1, X2, X3, X4))
     (active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2), U61#(X1, X2, mark X3) -> U61#(X1, X2, X3))
     (active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2), U61#(X1, X2, active X3) -> U61#(X1, X2, X3))
     (active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2), U61#(X1, mark X2, X3) -> U61#(X1, X2, X3))
     (active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2), U61#(X1, active X2, X3) -> U61#(X1, X2, X3))
     (active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2), U61#(mark X1, X2, X3) -> U61#(X1, X2, X3))
     (active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2), U61#(active X1, X2, X3) -> U61#(X1, X2, X3))
     (active# zeros() -> cons#(0(), zeros()), cons#(X1, mark X2) -> cons#(X1, X2))
     (active# zeros() -> cons#(0(), zeros()), cons#(X1, active X2) -> cons#(X1, X2))
     (active# zeros() -> cons#(0(), zeros()), cons#(mark X1, X2) -> cons#(X1, X2))
     (active# zeros() -> cons#(0(), zeros()), cons#(active X1, X2) -> cons#(X1, X2))
     (active# U31(tt(), V) -> isNatList# V, isNatList# mark X -> isNatList# X)
     (active# U31(tt(), V) -> isNatList# V, isNatList# active X -> isNatList# X)
     (active# take(s M, cons(N, IL)) -> isNat# M, isNat# mark X -> isNat# X)
     (active# take(s M, cons(N, IL)) -> isNat# M, isNat# active X -> isNat# X)
     (active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), and#(X1, mark X2) -> and#(X1, X2))
     (active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), and#(X1, active X2) -> and#(X1, X2))
     (active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), and#(mark X1, X2) -> and#(X1, X2))
     (active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), and#(active X1, X2) -> and#(X1, X2))
     (active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), and#(X1, mark X2) -> and#(X1, X2))
     (active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), and#(X1, active X2) -> and#(X1, X2))
     (active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), and#(mark X1, X2) -> and#(X1, X2))
     (active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), and#(active X1, X2) -> and#(X1, X2))
     (active# isNatIList V -> U31#(isNatIListKind V, V), U31#(X1, mark X2) -> U31#(X1, X2))
     (active# isNatIList V -> U31#(isNatIListKind V, V), U31#(X1, active X2) -> U31#(X1, X2))
     (active# isNatIList V -> U31#(isNatIListKind V, V), U31#(mark X1, X2) -> U31#(X1, X2))
     (active# isNatIList V -> U31#(isNatIListKind V, V), U31#(active X1, X2) -> U31#(X1, X2))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# cons(X1, X2) -> mark# X1)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# 0() -> active# 0())
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# zeros() -> active# zeros())
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U12 X -> mark# X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U12 X -> active# U12 mark X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U12 X -> U12# mark X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# isNatList X -> active# isNatList X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U11(X1, X2) -> mark# X1)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# tt() -> active# tt())
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U22 X -> mark# X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U22 X -> active# U22 mark X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U22 X -> U22# mark X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# isNat X -> active# isNat X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U21(X1, X2) -> mark# X1)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U32 X -> mark# X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U32 X -> active# U32 mark X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U32 X -> U32# mark X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U31(X1, X2) -> mark# X1)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U42(X1, X2) -> mark# X1)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U41(X1, X2, X3) -> mark# X1)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U43 X -> mark# X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U43 X -> active# U43 mark X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U43 X -> U43# mark X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# isNatIList X -> active# isNatIList X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U52(X1, X2) -> mark# X1)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U51(X1, X2, X3) -> mark# X1)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U53 X -> mark# X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U53 X -> active# U53 mark X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U53 X -> U53# mark X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U62(X1, X2) -> mark# X1)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U61(X1, X2, X3) -> mark# X1)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U63 X -> mark# X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U63 X -> active# U63 mark X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U63 X -> U63# mark X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# s X -> mark# X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# s X -> active# s mark X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# s X -> s# mark X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# length X -> mark# X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# length X -> active# length mark X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# length X -> length# mark X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U71(X1, X2) -> mark# X1)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# nil() -> active# nil())
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U81 X -> mark# X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U81 X -> active# U81 mark X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U81 X -> U81# mark X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# take(X1, X2) -> mark# X1)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# take(X1, X2) -> mark# X2)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# and(X1, X2) -> mark# X1)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# isNatKind X -> active# isNatKind X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# cons(X1, X2) -> mark# X1)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# cons(X1, X2) -> cons#(mark X1, X2))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# cons(X1, X2) -> active# cons(mark X1, X2))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# 0() -> active# 0())
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# zeros() -> active# zeros())
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U12 X -> mark# X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U12 X -> active# U12 mark X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U12 X -> U12# mark X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# isNatList X -> active# isNatList X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U11(X1, X2) -> mark# X1)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U11(X1, X2) -> active# U11(mark X1, X2))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U11(X1, X2) -> U11#(mark X1, X2))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# tt() -> active# tt())
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U22 X -> mark# X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U22 X -> active# U22 mark X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U22 X -> U22# mark X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# isNat X -> active# isNat X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U21(X1, X2) -> mark# X1)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U21(X1, X2) -> active# U21(mark X1, X2))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U21(X1, X2) -> U21#(mark X1, X2))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U32 X -> mark# X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U32 X -> active# U32 mark X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U32 X -> U32# mark X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U31(X1, X2) -> mark# X1)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U31(X1, X2) -> active# U31(mark X1, X2))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U31(X1, X2) -> U31#(mark X1, X2))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U42(X1, X2) -> mark# X1)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U42(X1, X2) -> active# U42(mark X1, X2))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U42(X1, X2) -> U42#(mark X1, X2))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U41(X1, X2, X3) -> mark# X1)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U43 X -> mark# X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U43 X -> active# U43 mark X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U43 X -> U43# mark X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# isNatIList X -> active# isNatIList X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U52(X1, X2) -> mark# X1)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U52(X1, X2) -> active# U52(mark X1, X2))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U52(X1, X2) -> U52#(mark X1, X2))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U51(X1, X2, X3) -> mark# X1)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U51(X1, X2, X3) -> U51#(mark X1, X2, X3))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U53 X -> mark# X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U53 X -> active# U53 mark X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U53 X -> U53# mark X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U62(X1, X2) -> mark# X1)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U62(X1, X2) -> active# U62(mark X1, X2))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U62(X1, X2) -> U62#(mark X1, X2))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U61(X1, X2, X3) -> mark# X1)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U61(X1, X2, X3) -> U61#(mark X1, X2, X3))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U63 X -> mark# X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U63 X -> active# U63 mark X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U63 X -> U63# mark X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# s X -> mark# X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# s X -> active# s mark X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# s X -> s# mark X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# length X -> mark# X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# length X -> active# length mark X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# length X -> length# mark X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U71(X1, X2) -> mark# X1)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U71(X1, X2) -> active# U71(mark X1, X2))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U71(X1, X2) -> U71#(mark X1, X2))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# nil() -> active# nil())
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U81 X -> mark# X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U81 X -> active# U81 mark X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U81 X -> U81# mark X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# take(X1, X2) -> mark# X1)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# take(X1, X2) -> mark# X2)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# take(X1, X2) -> active# take(mark X1, mark X2))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# take(X1, X2) -> take#(mark X1, mark X2))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U91(X1, X2, X3, X4) -> mark# X1)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# U91(X1, X2, X3, X4) -> U91#(mark X1, X2, X3, X4))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# and(X1, X2) -> mark# X1)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# and(X1, X2) -> active# and(mark X1, X2))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# and(X1, X2) -> and#(mark X1, X2))
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# isNatIListKind X -> active# isNatIListKind X)
     (active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2), mark# isNatKind X -> active# isNatKind X)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# zeros() -> mark# cons(0(), zeros()))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# zeros() -> cons#(0(), zeros()))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U12 tt() -> mark# tt())
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatList nil() -> mark# tt())
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U11(tt(), V1) -> isNatList# V1)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U22 tt() -> mark# tt())
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNat 0() -> mark# tt())
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNat s V1 -> isNatKind# V1)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNat length V1 -> isNatIListKind# V1)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U21(tt(), V1) -> U22# isNat V1)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U21(tt(), V1) -> isNat# V1)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U32 tt() -> mark# tt())
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U31(tt(), V) -> isNatList# V)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U31(tt(), V) -> U32# isNatList V)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U42(tt(), V2) -> isNatIList# V2)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U43 tt() -> mark# tt())
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatIList V -> isNatIListKind# V)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatIList zeros() -> mark# tt())
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U52(tt(), V2) -> isNatList# V2)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U53 tt() -> mark# tt())
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U62(tt(), V2) -> isNatIList# V2)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U63 tt() -> mark# tt())
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# length cons(N, L) -> isNatList# L)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# length cons(N, L) -> isNat# N)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# length cons(N, L) -> isNatIListKind# L)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# length cons(N, L) -> isNatKind# N)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# length nil() -> mark# 0())
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U71(tt(), L) -> mark# s length L)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U71(tt(), L) -> s# length L)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U71(tt(), L) -> length# L)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U81 tt() -> mark# nil())
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# take(0(), IL) -> isNatIList# IL)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# take(0(), IL) -> isNatIListKind# IL)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# and(tt(), X) -> mark# X)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatIListKind zeros() -> mark# tt())
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatIListKind nil() -> mark# tt())
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatKind 0() -> mark# tt())
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatKind s V1 -> isNatKind# V1)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3), active# isNatKind length V1 -> isNatIListKind# V1)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# zeros() -> mark# cons(0(), zeros()))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# zeros() -> cons#(0(), zeros()))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U12 tt() -> mark# tt())
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatList cons(V1, V2) -> isNatKind# V1)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatList nil() -> mark# tt())
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatList take(V1, V2) -> isNatIListKind# V2)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatList take(V1, V2) -> isNatKind# V1)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U11(tt(), V1) -> mark# U12 isNatList V1)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U11(tt(), V1) -> U12# isNatList V1)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U11(tt(), V1) -> isNatList# V1)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U22 tt() -> mark# tt())
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNat 0() -> mark# tt())
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNat s V1 -> mark# U21(isNatKind V1, V1))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNat s V1 -> U21#(isNatKind V1, V1))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNat s V1 -> isNatKind# V1)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNat length V1 -> mark# U11(isNatIListKind V1, V1))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNat length V1 -> U11#(isNatIListKind V1, V1))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNat length V1 -> isNatIListKind# V1)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U21(tt(), V1) -> mark# U22 isNat V1)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U21(tt(), V1) -> U22# isNat V1)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U21(tt(), V1) -> isNat# V1)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U32 tt() -> mark# tt())
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U31(tt(), V) -> mark# U32 isNatList V)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U31(tt(), V) -> isNatList# V)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U31(tt(), V) -> U32# isNatList V)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U42(tt(), V2) -> mark# U43 isNatIList V2)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U42(tt(), V2) -> U43# isNatIList V2)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U42(tt(), V2) -> isNatIList# V2)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U41(tt(), V1, V2) -> isNat# V1)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U41(tt(), V1, V2) -> U42#(isNat V1, V2))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U43 tt() -> mark# tt())
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatIList V -> mark# U31(isNatIListKind V, V))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatIList V -> U31#(isNatIListKind V, V))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatIList V -> isNatIListKind# V)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatIList cons(V1, V2) -> isNatIListKind# V2)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatIList cons(V1, V2) -> isNatKind# V1)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatIList zeros() -> mark# tt())
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U52(tt(), V2) -> mark# U53 isNatList V2)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U52(tt(), V2) -> isNatList# V2)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U52(tt(), V2) -> U53# isNatList V2)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U51(tt(), V1, V2) -> isNat# V1)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U51(tt(), V1, V2) -> U52#(isNat V1, V2))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U53 tt() -> mark# tt())
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U62(tt(), V2) -> mark# U63 isNatIList V2)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U62(tt(), V2) -> isNatIList# V2)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U62(tt(), V2) -> U63# isNatIList V2)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U61(tt(), V1, V2) -> isNat# V1)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U61(tt(), V1, V2) -> U62#(isNat V1, V2))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U63 tt() -> mark# tt())
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# length cons(N, L) -> isNatList# L)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# length cons(N, L) -> isNat# N)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# length cons(N, L) -> and#(isNatList L, isNatIListKind L))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# length cons(N, L) -> and#(isNat N, isNatKind N))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# length cons(N, L) -> isNatIListKind# L)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# length cons(N, L) -> isNatKind# N)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# length nil() -> mark# 0())
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U71(tt(), L) -> mark# s length L)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U71(tt(), L) -> s# length L)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U71(tt(), L) -> length# L)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U81 tt() -> mark# nil())
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# take(0(), IL) -> isNatIList# IL)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# take(0(), IL) -> isNatIListKind# IL)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> isNat# N)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> isNat# M)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> isNatIList# IL)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> isNatIListKind# IL)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> isNatKind# N)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# take(s M, cons(N, IL)) -> isNatKind# M)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U91(tt(), IL, M, N) -> take#(M, IL))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# and(tt(), X) -> mark# X)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatIListKind cons(V1, V2) -> isNatKind# V1)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatIListKind zeros() -> mark# tt())
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatIListKind nil() -> mark# tt())
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2))
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatIListKind take(V1, V2) -> isNatIListKind# V2)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatIListKind take(V1, V2) -> isNatKind# V1)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatKind 0() -> mark# tt())
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatKind s V1 -> mark# isNatKind V1)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatKind s V1 -> isNatKind# V1)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatKind length V1 -> mark# isNatIListKind V1)
     (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatKind length V1 -> isNatIListKind# V1)
    }
    STATUS:
     arrows: 0.938506
     SCCS (29):
      Scc:
       {                 mark# cons(X1, X2) -> mark# X1,
                         mark# cons(X1, X2) -> active# cons(mark X1, X2),
                              mark# zeros() -> active# zeros(),
                                mark# U12 X -> mark# X,
                          mark# isNatList X -> active# isNatList X,
                          mark# U11(X1, X2) -> mark# X1,
                          mark# U11(X1, X2) -> active# U11(mark X1, X2),
                                mark# U22 X -> mark# X,
                              mark# isNat X -> active# isNat X,
                          mark# U21(X1, X2) -> mark# X1,
                          mark# U21(X1, X2) -> active# U21(mark X1, X2),
                                mark# U32 X -> mark# X,
                          mark# U31(X1, X2) -> mark# X1,
                          mark# U31(X1, X2) -> active# U31(mark X1, X2),
                          mark# U42(X1, X2) -> mark# X1,
                          mark# U42(X1, X2) -> active# U42(mark X1, X2),
                      mark# U41(X1, X2, X3) -> mark# X1,
                      mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3),
                                mark# U43 X -> mark# X,
                         mark# isNatIList X -> active# isNatIList X,
                          mark# U52(X1, X2) -> mark# X1,
                          mark# U52(X1, X2) -> active# U52(mark X1, X2),
                      mark# U51(X1, X2, X3) -> mark# X1,
                      mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3),
                                mark# U53 X -> mark# X,
                          mark# U62(X1, X2) -> mark# X1,
                          mark# U62(X1, X2) -> active# U62(mark X1, X2),
                      mark# U61(X1, X2, X3) -> mark# X1,
                      mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3),
                                mark# U63 X -> mark# X,
                                  mark# s X -> mark# X,
                             mark# length X -> mark# X,
                             mark# length X -> active# length mark X,
                          mark# U71(X1, X2) -> mark# X1,
                          mark# U71(X1, X2) -> active# U71(mark X1, X2),
                                mark# U81 X -> mark# X,
                         mark# take(X1, X2) -> mark# X1,
                         mark# take(X1, X2) -> mark# X2,
                         mark# take(X1, X2) -> active# take(mark X1, mark X2),
                  mark# U91(X1, X2, X3, X4) -> mark# X1,
                  mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4),
                          mark# and(X1, X2) -> mark# X1,
                          mark# and(X1, X2) -> active# and(mark X1, X2),
                     mark# isNatIListKind X -> active# isNatIListKind X,
                          mark# isNatKind X -> active# isNatKind X,
                            active# zeros() -> mark# cons(0(), zeros()),
             active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
             active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active# U11(tt(), V1) -> mark# U12 isNatList V1,
                         active# isNat s V1 -> mark# U21(isNatKind V1, V1),
                    active# isNat length V1 -> mark# U11(isNatIListKind V1, V1),
                      active# U21(tt(), V1) -> mark# U22 isNat V1,
                       active# U31(tt(), V) -> mark# U32 isNatList V,
                      active# U42(tt(), V2) -> mark# U43 isNatIList V2,
                  active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2),
                       active# isNatIList V -> mark# U31(isNatIListKind V, V),
            active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active# U52(tt(), V2) -> mark# U53 isNatList V2,
                  active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2),
                      active# U62(tt(), V2) -> mark# U63 isNatIList V2,
                  active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2),
                  active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active# U71(tt(), L) -> mark# s length L,
                      active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL),
             active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)),
                       active# and(tt(), X) -> mark# X,
        active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2),
        active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2),
                     active# isNatKind s V1 -> mark# isNatKind V1,
                active# isNatKind length V1 -> mark# isNatIListKind V1}
      Scc:
       {  U91#(X1, X2, X3, mark X4) -> U91#(X1, X2, X3, X4),
        U91#(X1, X2, X3, active X4) -> U91#(X1, X2, X3, X4),
          U91#(X1, X2, mark X3, X4) -> U91#(X1, X2, X3, X4),
        U91#(X1, X2, active X3, X4) -> U91#(X1, X2, X3, X4),
          U91#(X1, mark X2, X3, X4) -> U91#(X1, X2, X3, X4),
        U91#(X1, active X2, X3, X4) -> U91#(X1, X2, X3, X4),
          U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4),
        U91#(active X1, X2, X3, X4) -> U91#(X1, X2, X3, X4)}
      Scc:
       {  take#(X1, mark X2) -> take#(X1, X2),
        take#(X1, active X2) -> take#(X1, X2),
          take#(mark X1, X2) -> take#(X1, X2),
        take#(active X1, X2) -> take#(X1, X2)}
      Scc:
       {  U81# mark X -> U81# X,
        U81# active X -> U81# X}
      Scc:
       {  U71#(X1, mark X2) -> U71#(X1, X2),
        U71#(X1, active X2) -> U71#(X1, X2),
          U71#(mark X1, X2) -> U71#(X1, X2),
        U71#(active X1, X2) -> U71#(X1, X2)}
      Scc:
       {  length# mark X -> length# X,
        length# active X -> length# X}
      Scc:
       {  s# mark X -> s# X,
        s# active X -> s# X}
      Scc:
       {  U63# mark X -> U63# X,
        U63# active X -> U63# X}
      Scc:
       {  U62#(X1, mark X2) -> U62#(X1, X2),
        U62#(X1, active X2) -> U62#(X1, X2),
          U62#(mark X1, X2) -> U62#(X1, X2),
        U62#(active X1, X2) -> U62#(X1, X2)}
      Scc:
       {  U53# mark X -> U53# X,
        U53# active X -> U53# X}
      Scc:
       {  U52#(X1, mark X2) -> U52#(X1, X2),
        U52#(X1, active X2) -> U52#(X1, X2),
          U52#(mark X1, X2) -> U52#(X1, X2),
        U52#(active X1, X2) -> U52#(X1, X2)}
      Scc:
       {  U43# mark X -> U43# X,
        U43# active X -> U43# X}
      Scc:
       {  U41#(X1, X2, mark X3) -> U41#(X1, X2, X3),
        U41#(X1, X2, active X3) -> U41#(X1, X2, X3),
          U41#(X1, mark X2, X3) -> U41#(X1, X2, X3),
        U41#(X1, active X2, X3) -> U41#(X1, X2, X3),
          U41#(mark X1, X2, X3) -> U41#(X1, X2, X3),
        U41#(active X1, X2, X3) -> U41#(X1, X2, X3)}
      Scc:
       {  U42#(X1, mark X2) -> U42#(X1, X2),
        U42#(X1, active X2) -> U42#(X1, X2),
          U42#(mark X1, X2) -> U42#(X1, X2),
        U42#(active X1, X2) -> U42#(X1, X2)}
      Scc:
       {  isNatIList# mark X -> isNatIList# X,
        isNatIList# active X -> isNatIList# X}
      Scc:
       {  U31#(X1, mark X2) -> U31#(X1, X2),
        U31#(X1, active X2) -> U31#(X1, X2),
          U31#(mark X1, X2) -> U31#(X1, X2),
        U31#(active X1, X2) -> U31#(X1, X2)}
      Scc:
       {  U32# mark X -> U32# X,
        U32# active X -> U32# X}
      Scc:
       {  isNat# mark X -> isNat# X,
        isNat# active X -> isNat# X}
      Scc:
       {  U21#(X1, mark X2) -> U21#(X1, X2),
        U21#(X1, active X2) -> U21#(X1, X2),
          U21#(mark X1, X2) -> U21#(X1, X2),
        U21#(active X1, X2) -> U21#(X1, X2)}
      Scc:
       {  U22# mark X -> U22# X,
        U22# active X -> U22# X}
      Scc:
       {  U11#(X1, mark X2) -> U11#(X1, X2),
        U11#(X1, active X2) -> U11#(X1, X2),
          U11#(mark X1, X2) -> U11#(X1, X2),
        U11#(active X1, X2) -> U11#(X1, X2)}
      Scc:
       {  isNatList# mark X -> isNatList# X,
        isNatList# active X -> isNatList# X}
      Scc:
       {  U61#(X1, X2, mark X3) -> U61#(X1, X2, X3),
        U61#(X1, X2, active X3) -> U61#(X1, X2, X3),
          U61#(X1, mark X2, X3) -> U61#(X1, X2, X3),
        U61#(X1, active X2, X3) -> U61#(X1, X2, X3),
          U61#(mark X1, X2, X3) -> U61#(X1, X2, X3),
        U61#(active X1, X2, X3) -> U61#(X1, X2, X3)}
      Scc:
       {  isNatKind# mark X -> isNatKind# X,
        isNatKind# active X -> isNatKind# X}
      Scc:
       {  isNatIListKind# mark X -> isNatIListKind# X,
        isNatIListKind# active X -> isNatIListKind# X}
      Scc:
       {  and#(X1, mark X2) -> and#(X1, X2),
        and#(X1, active X2) -> and#(X1, X2),
          and#(mark X1, X2) -> and#(X1, X2),
        and#(active X1, X2) -> and#(X1, X2)}
      Scc:
       {  U51#(X1, X2, mark X3) -> U51#(X1, X2, X3),
        U51#(X1, X2, active X3) -> U51#(X1, X2, X3),
          U51#(X1, mark X2, X3) -> U51#(X1, X2, X3),
        U51#(X1, active X2, X3) -> U51#(X1, X2, X3),
          U51#(mark X1, X2, X3) -> U51#(X1, X2, X3),
        U51#(active X1, X2, X3) -> U51#(X1, X2, X3)}
      Scc:
       {  U12# mark X -> U12# X,
        U12# active X -> U12# X}
      Scc:
       {  cons#(X1, mark X2) -> cons#(X1, X2),
        cons#(X1, active X2) -> cons#(X1, X2),
          cons#(mark X1, X2) -> cons#(X1, X2),
        cons#(active X1, X2) -> cons#(X1, X2)}
      
      SCC (71):
       Strict:
        {                 mark# cons(X1, X2) -> mark# X1,
                          mark# cons(X1, X2) -> active# cons(mark X1, X2),
                               mark# zeros() -> active# zeros(),
                                 mark# U12 X -> mark# X,
                           mark# isNatList X -> active# isNatList X,
                           mark# U11(X1, X2) -> mark# X1,
                           mark# U11(X1, X2) -> active# U11(mark X1, X2),
                                 mark# U22 X -> mark# X,
                               mark# isNat X -> active# isNat X,
                           mark# U21(X1, X2) -> mark# X1,
                           mark# U21(X1, X2) -> active# U21(mark X1, X2),
                                 mark# U32 X -> mark# X,
                           mark# U31(X1, X2) -> mark# X1,
                           mark# U31(X1, X2) -> active# U31(mark X1, X2),
                           mark# U42(X1, X2) -> mark# X1,
                           mark# U42(X1, X2) -> active# U42(mark X1, X2),
                       mark# U41(X1, X2, X3) -> mark# X1,
                       mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3),
                                 mark# U43 X -> mark# X,
                          mark# isNatIList X -> active# isNatIList X,
                           mark# U52(X1, X2) -> mark# X1,
                           mark# U52(X1, X2) -> active# U52(mark X1, X2),
                       mark# U51(X1, X2, X3) -> mark# X1,
                       mark# U51(X1, X2, X3) -> active# U51(mark X1, X2, X3),
                                 mark# U53 X -> mark# X,
                           mark# U62(X1, X2) -> mark# X1,
                           mark# U62(X1, X2) -> active# U62(mark X1, X2),
                       mark# U61(X1, X2, X3) -> mark# X1,
                       mark# U61(X1, X2, X3) -> active# U61(mark X1, X2, X3),
                                 mark# U63 X -> mark# X,
                                   mark# s X -> mark# X,
                              mark# length X -> mark# X,
                              mark# length X -> active# length mark X,
                           mark# U71(X1, X2) -> mark# X1,
                           mark# U71(X1, X2) -> active# U71(mark X1, X2),
                                 mark# U81 X -> mark# X,
                          mark# take(X1, X2) -> mark# X1,
                          mark# take(X1, X2) -> mark# X2,
                          mark# take(X1, X2) -> active# take(mark X1, mark X2),
                   mark# U91(X1, X2, X3, X4) -> mark# X1,
                   mark# U91(X1, X2, X3, X4) -> active# U91(mark X1, X2, X3, X4),
                           mark# and(X1, X2) -> mark# X1,
                           mark# and(X1, X2) -> active# and(mark X1, X2),
                      mark# isNatIListKind X -> active# isNatIListKind X,
                           mark# isNatKind X -> active# isNatKind X,
                             active# zeros() -> mark# cons(0(), zeros()),
              active# isNatList cons(V1, V2) -> mark# U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
              active# isNatList take(V1, V2) -> mark# U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                       active# U11(tt(), V1) -> mark# U12 isNatList V1,
                          active# isNat s V1 -> mark# U21(isNatKind V1, V1),
                     active# isNat length V1 -> mark# U11(isNatIListKind V1, V1),
                       active# U21(tt(), V1) -> mark# U22 isNat V1,
                        active# U31(tt(), V) -> mark# U32 isNatList V,
                       active# U42(tt(), V2) -> mark# U43 isNatIList V2,
                   active# U41(tt(), V1, V2) -> mark# U42(isNat V1, V2),
                        active# isNatIList V -> mark# U31(isNatIListKind V, V),
             active# isNatIList cons(V1, V2) -> mark# U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                       active# U52(tt(), V2) -> mark# U53 isNatList V2,
                   active# U51(tt(), V1, V2) -> mark# U52(isNat V1, V2),
                       active# U62(tt(), V2) -> mark# U63 isNatIList V2,
                   active# U61(tt(), V1, V2) -> mark# U62(isNat V1, V2),
                   active# length cons(N, L) -> mark# U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                        active# U71(tt(), L) -> mark# s length L,
                       active# take(0(), IL) -> mark# U81 and(isNatIList IL, isNatIListKind IL),
              active# take(s M, cons(N, IL)) -> mark# U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                 active# U91(tt(), IL, M, N) -> mark# cons(N, take(M, IL)),
                        active# and(tt(), X) -> mark# X,
         active# isNatIListKind cons(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2),
         active# isNatIListKind take(V1, V2) -> mark# and(isNatKind V1, isNatIListKind V2),
                      active# isNatKind s V1 -> mark# isNatKind V1,
                 active# isNatKind length V1 -> mark# isNatIListKind V1}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      SCC (8):
       Strict:
        {  U91#(X1, X2, X3, mark X4) -> U91#(X1, X2, X3, X4),
         U91#(X1, X2, X3, active X4) -> U91#(X1, X2, X3, X4),
           U91#(X1, X2, mark X3, X4) -> U91#(X1, X2, X3, X4),
         U91#(X1, X2, active X3, X4) -> U91#(X1, X2, X3, X4),
           U91#(X1, mark X2, X3, X4) -> U91#(X1, X2, X3, X4),
         U91#(X1, active X2, X3, X4) -> U91#(X1, X2, X3, X4),
           U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4),
         U91#(active X1, X2, X3, X4) -> U91#(X1, X2, X3, X4)}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      
      
      
      SCC (4):
       Strict:
        {  take#(X1, mark X2) -> take#(X1, X2),
         take#(X1, active X2) -> take#(X1, X2),
           take#(mark X1, X2) -> take#(X1, X2),
         take#(active X1, X2) -> take#(X1, X2)}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      
      
      
      
      SCC (2):
       Strict:
        {  U81# mark X -> U81# X,
         U81# active X -> U81# X}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      
      
      
      
      
      
      
      
      
      
      
      
      SCC (4):
       Strict:
        {  U71#(X1, mark X2) -> U71#(X1, X2),
         U71#(X1, active X2) -> U71#(X1, X2),
           U71#(mark X1, X2) -> U71#(X1, X2),
         U71#(active X1, X2) -> U71#(X1, X2)}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      
      
      
      
      
      
      SCC (2):
       Strict:
        {  length# mark X -> length# X,
         length# active X -> length# X}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      SCC (2):
       Strict:
        {  s# mark X -> s# X,
         s# active X -> s# X}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      
      SCC (2):
       Strict:
        {  U63# mark X -> U63# X,
         U63# active X -> U63# X}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      
      
      
      
      
      SCC (4):
       Strict:
        {  U62#(X1, mark X2) -> U62#(X1, X2),
         U62#(X1, active X2) -> U62#(X1, X2),
           U62#(mark X1, X2) -> U62#(X1, X2),
         U62#(active X1, X2) -> U62#(X1, X2)}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      
      
      SCC (2):
       Strict:
        {  U53# mark X -> U53# X,
         U53# active X -> U53# X}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      
      
      
      
      
      
      
      
      SCC (4):
       Strict:
        {  U52#(X1, mark X2) -> U52#(X1, X2),
         U52#(X1, active X2) -> U52#(X1, X2),
           U52#(mark X1, X2) -> U52#(X1, X2),
         U52#(active X1, X2) -> U52#(X1, X2)}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      
      
      
      
      SCC (2):
       Strict:
        {  U43# mark X -> U43# X,
         U43# active X -> U43# X}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      
      
      SCC (6):
       Strict:
        {  U41#(X1, X2, mark X3) -> U41#(X1, X2, X3),
         U41#(X1, X2, active X3) -> U41#(X1, X2, X3),
           U41#(X1, mark X2, X3) -> U41#(X1, X2, X3),
         U41#(X1, active X2, X3) -> U41#(X1, X2, X3),
           U41#(mark X1, X2, X3) -> U41#(X1, X2, X3),
         U41#(active X1, X2, X3) -> U41#(X1, X2, X3)}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      SCC (4):
       Strict:
        {  U42#(X1, mark X2) -> U42#(X1, X2),
         U42#(X1, active X2) -> U42#(X1, X2),
           U42#(mark X1, X2) -> U42#(X1, X2),
         U42#(active X1, X2) -> U42#(X1, X2)}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      SCC (2):
       Strict:
        {  isNatIList# mark X -> isNatIList# X,
         isNatIList# active X -> isNatIList# X}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      
      SCC (4):
       Strict:
        {  U31#(X1, mark X2) -> U31#(X1, X2),
         U31#(X1, active X2) -> U31#(X1, X2),
           U31#(mark X1, X2) -> U31#(X1, X2),
         U31#(active X1, X2) -> U31#(X1, X2)}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      
      
      SCC (2):
       Strict:
        {  U32# mark X -> U32# X,
         U32# active X -> U32# X}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      
      
      
      SCC (2):
       Strict:
        {  isNat# mark X -> isNat# X,
         isNat# active X -> isNat# X}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      
      
      
      
      SCC (4):
       Strict:
        {  U21#(X1, mark X2) -> U21#(X1, X2),
         U21#(X1, active X2) -> U21#(X1, X2),
           U21#(mark X1, X2) -> U21#(X1, X2),
         U21#(active X1, X2) -> U21#(X1, X2)}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      SCC (2):
       Strict:
        {  U22# mark X -> U22# X,
         U22# active X -> U22# X}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      
      SCC (4):
       Strict:
        {  U11#(X1, mark X2) -> U11#(X1, X2),
         U11#(X1, active X2) -> U11#(X1, X2),
           U11#(mark X1, X2) -> U11#(X1, X2),
         U11#(active X1, X2) -> U11#(X1, X2)}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      
      
      SCC (2):
       Strict:
        {  isNatList# mark X -> isNatList# X,
         isNatList# active X -> isNatList# X}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      
      
      
      
      SCC (6):
       Strict:
        {  U61#(X1, X2, mark X3) -> U61#(X1, X2, X3),
         U61#(X1, X2, active X3) -> U61#(X1, X2, X3),
           U61#(X1, mark X2, X3) -> U61#(X1, X2, X3),
         U61#(X1, active X2, X3) -> U61#(X1, X2, X3),
           U61#(mark X1, X2, X3) -> U61#(X1, X2, X3),
         U61#(active X1, X2, X3) -> U61#(X1, X2, X3)}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      
      SCC (2):
       Strict:
        {  isNatKind# mark X -> isNatKind# X,
         isNatKind# active X -> isNatKind# X}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      SCC (2):
       Strict:
        {  isNatIListKind# mark X -> isNatIListKind# X,
         isNatIListKind# active X -> isNatIListKind# X}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      SCC (4):
       Strict:
        {  and#(X1, mark X2) -> and#(X1, X2),
         and#(X1, active X2) -> and#(X1, X2),
           and#(mark X1, X2) -> and#(X1, X2),
         and#(active X1, X2) -> and#(X1, X2)}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      SCC (6):
       Strict:
        {  U51#(X1, X2, mark X3) -> U51#(X1, X2, X3),
         U51#(X1, X2, active X3) -> U51#(X1, X2, X3),
           U51#(X1, mark X2, X3) -> U51#(X1, X2, X3),
         U51#(X1, active X2, X3) -> U51#(X1, X2, X3),
           U51#(mark X1, X2, X3) -> U51#(X1, X2, X3),
         U51#(active X1, X2, X3) -> U51#(X1, X2, X3)}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      SCC (2):
       Strict:
        {  U12# mark X -> U12# X,
         U12# active X -> U12# X}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open
      
      
      
      
      
      
      SCC (4):
       Strict:
        {  cons#(X1, mark X2) -> cons#(X1, X2),
         cons#(X1, active X2) -> cons#(X1, X2),
           cons#(mark X1, X2) -> cons#(X1, X2),
         cons#(active X1, X2) -> cons#(X1, X2)}
       Weak:
       {                 mark cons(X1, X2) -> active cons(mark X1, X2),
                                  mark 0() -> active 0(),
                              mark zeros() -> active zeros(),
                                mark U12 X -> active U12 mark X,
                          mark isNatList X -> active isNatList X,
                          mark U11(X1, X2) -> active U11(mark X1, X2),
                                 mark tt() -> active tt(),
                                mark U22 X -> active U22 mark X,
                              mark isNat X -> active isNat X,
                          mark U21(X1, X2) -> active U21(mark X1, X2),
                                mark U32 X -> active U32 mark X,
                          mark U31(X1, X2) -> active U31(mark X1, X2),
                          mark U42(X1, X2) -> active U42(mark X1, X2),
                      mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3),
                                mark U43 X -> active U43 mark X,
                         mark isNatIList X -> active isNatIList X,
                          mark U52(X1, X2) -> active U52(mark X1, X2),
                      mark U51(X1, X2, X3) -> active U51(mark X1, X2, X3),
                                mark U53 X -> active U53 mark X,
                          mark U62(X1, X2) -> active U62(mark X1, X2),
                      mark U61(X1, X2, X3) -> active U61(mark X1, X2, X3),
                                mark U63 X -> active U63 mark X,
                                  mark s X -> active s mark X,
                             mark length X -> active length mark X,
                          mark U71(X1, X2) -> active U71(mark X1, X2),
                                mark nil() -> active nil(),
                                mark U81 X -> active U81 mark X,
                         mark take(X1, X2) -> active take(mark X1, mark X2),
                  mark U91(X1, X2, X3, X4) -> active U91(mark X1, X2, X3, X4),
                          mark and(X1, X2) -> active and(mark X1, X2),
                     mark isNatIListKind X -> active isNatIListKind X,
                          mark isNatKind X -> active isNatKind X,
                         cons(X1, mark X2) -> cons(X1, X2),
                       cons(X1, active X2) -> cons(X1, X2),
                         cons(mark X1, X2) -> cons(X1, X2),
                       cons(active X1, X2) -> cons(X1, X2),
                            active zeros() -> mark cons(0(), zeros()),
                           active U12 tt() -> mark tt(),
             active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2),
                    active isNatList nil() -> mark tt(),
             active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2),
                      active U11(tt(), V1) -> mark U12 isNatList V1,
                           active U22 tt() -> mark tt(),
                          active isNat 0() -> mark tt(),
                         active isNat s V1 -> mark U21(isNatKind V1, V1),
                    active isNat length V1 -> mark U11(isNatIListKind V1, V1),
                      active U21(tt(), V1) -> mark U22 isNat V1,
                           active U32 tt() -> mark tt(),
                       active U31(tt(), V) -> mark U32 isNatList V,
                      active U42(tt(), V2) -> mark U43 isNatIList V2,
                  active U41(tt(), V1, V2) -> mark U42(isNat V1, V2),
                           active U43 tt() -> mark tt(),
                       active isNatIList V -> mark U31(isNatIListKind V, V),
            active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2),
                 active isNatIList zeros() -> mark tt(),
                      active U52(tt(), V2) -> mark U53 isNatList V2,
                  active U51(tt(), V1, V2) -> mark U52(isNat V1, V2),
                           active U53 tt() -> mark tt(),
                      active U62(tt(), V2) -> mark U63 isNatIList V2,
                  active U61(tt(), V1, V2) -> mark U62(isNat V1, V2),
                           active U63 tt() -> mark tt(),
                  active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L),
                       active length nil() -> mark 0(),
                       active U71(tt(), L) -> mark s length L,
                           active U81 tt() -> mark nil(),
                      active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL),
             active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N),
                active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)),
                       active and(tt(), X) -> mark X,
        active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
             active isNatIListKind zeros() -> mark tt(),
               active isNatIListKind nil() -> mark tt(),
        active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2),
                      active isNatKind 0() -> mark tt(),
                     active isNatKind s V1 -> mark isNatKind V1,
                active isNatKind length V1 -> mark isNatIListKind V1,
                                U12 mark X -> U12 X,
                              U12 active X -> U12 X,
                          isNatList mark X -> isNatList X,
                        isNatList active X -> isNatList X,
                          U11(X1, mark X2) -> U11(X1, X2),
                        U11(X1, active X2) -> U11(X1, X2),
                          U11(mark X1, X2) -> U11(X1, X2),
                        U11(active X1, X2) -> U11(X1, X2),
                                U22 mark X -> U22 X,
                              U22 active X -> U22 X,
                              isNat mark X -> isNat X,
                            isNat active X -> isNat X,
                          U21(X1, mark X2) -> U21(X1, X2),
                        U21(X1, active X2) -> U21(X1, X2),
                          U21(mark X1, X2) -> U21(X1, X2),
                        U21(active X1, X2) -> U21(X1, X2),
                                U32 mark X -> U32 X,
                              U32 active X -> U32 X,
                          U31(X1, mark X2) -> U31(X1, X2),
                        U31(X1, active X2) -> U31(X1, X2),
                          U31(mark X1, X2) -> U31(X1, X2),
                        U31(active X1, X2) -> U31(X1, X2),
                          U42(X1, mark X2) -> U42(X1, X2),
                        U42(X1, active X2) -> U42(X1, X2),
                          U42(mark X1, X2) -> U42(X1, X2),
                        U42(active X1, X2) -> U42(X1, X2),
                      U41(X1, X2, mark X3) -> U41(X1, X2, X3),
                    U41(X1, X2, active X3) -> U41(X1, X2, X3),
                      U41(X1, mark X2, X3) -> U41(X1, X2, X3),
                    U41(X1, active X2, X3) -> U41(X1, X2, X3),
                      U41(mark X1, X2, X3) -> U41(X1, X2, X3),
                    U41(active X1, X2, X3) -> U41(X1, X2, X3),
                                U43 mark X -> U43 X,
                              U43 active X -> U43 X,
                         isNatIList mark X -> isNatIList X,
                       isNatIList active X -> isNatIList X,
                          U52(X1, mark X2) -> U52(X1, X2),
                        U52(X1, active X2) -> U52(X1, X2),
                          U52(mark X1, X2) -> U52(X1, X2),
                        U52(active X1, X2) -> U52(X1, X2),
                      U51(X1, X2, mark X3) -> U51(X1, X2, X3),
                    U51(X1, X2, active X3) -> U51(X1, X2, X3),
                      U51(X1, mark X2, X3) -> U51(X1, X2, X3),
                    U51(X1, active X2, X3) -> U51(X1, X2, X3),
                      U51(mark X1, X2, X3) -> U51(X1, X2, X3),
                    U51(active X1, X2, X3) -> U51(X1, X2, X3),
                                U53 mark X -> U53 X,
                              U53 active X -> U53 X,
                          U62(X1, mark X2) -> U62(X1, X2),
                        U62(X1, active X2) -> U62(X1, X2),
                          U62(mark X1, X2) -> U62(X1, X2),
                        U62(active X1, X2) -> U62(X1, X2),
                      U61(X1, X2, mark X3) -> U61(X1, X2, X3),
                    U61(X1, X2, active X3) -> U61(X1, X2, X3),
                      U61(X1, mark X2, X3) -> U61(X1, X2, X3),
                    U61(X1, active X2, X3) -> U61(X1, X2, X3),
                      U61(mark X1, X2, X3) -> U61(X1, X2, X3),
                    U61(active X1, X2, X3) -> U61(X1, X2, X3),
                                U63 mark X -> U63 X,
                              U63 active X -> U63 X,
                                  s mark X -> s X,
                                s active X -> s X,
                             length mark X -> length X,
                           length active X -> length X,
                          U71(X1, mark X2) -> U71(X1, X2),
                        U71(X1, active X2) -> U71(X1, X2),
                          U71(mark X1, X2) -> U71(X1, X2),
                        U71(active X1, X2) -> U71(X1, X2),
                                U81 mark X -> U81 X,
                              U81 active X -> U81 X,
                         take(X1, mark X2) -> take(X1, X2),
                       take(X1, active X2) -> take(X1, X2),
                         take(mark X1, X2) -> take(X1, X2),
                       take(active X1, X2) -> take(X1, X2),
                  U91(X1, X2, X3, mark X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, X3, active X4) -> U91(X1, X2, X3, X4),
                  U91(X1, X2, mark X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, X2, active X3, X4) -> U91(X1, X2, X3, X4),
                  U91(X1, mark X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(X1, active X2, X3, X4) -> U91(X1, X2, X3, X4),
                  U91(mark X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                U91(active X1, X2, X3, X4) -> U91(X1, X2, X3, X4),
                          and(X1, mark X2) -> and(X1, X2),
                        and(X1, active X2) -> and(X1, X2),
                          and(mark X1, X2) -> and(X1, X2),
                        and(active X1, X2) -> and(X1, X2),
                     isNatIListKind mark X -> isNatIListKind X,
                   isNatIListKind active X -> isNatIListKind X,
                          isNatKind mark X -> isNatKind X,
                        isNatKind active X -> isNatKind X}
       Open