(VAR V1 V V2 L X N X1 X2 X3) (RULES active(zeros) -> mark(cons(0,zeros)) active(U11(tt,V1)) -> mark(U12(isNatList(V1))) active(U12(tt)) -> mark(tt) active(U21(tt,V1)) -> mark(U22(isNat(V1))) active(U22(tt)) -> mark(tt) active(U31(tt,V)) -> mark(U32(isNatList(V))) active(U32(tt)) -> mark(tt) active(U41(tt,V1,V2)) -> mark(U42(isNat(V1),V2)) active(U42(tt,V2)) -> mark(U43(isNatIList(V2))) active(U43(tt)) -> mark(tt) active(U51(tt,V1,V2)) -> mark(U52(isNat(V1),V2)) active(U52(tt,V2)) -> mark(U53(isNatList(V2))) active(U53(tt)) -> mark(tt) active(U61(tt,L)) -> mark(s(length(L))) active(and(tt,X)) -> mark(X) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1),V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1),V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V),V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1,V2))) -> mark(U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1,V2))) -> mark(and(isNatKind(V1),isNatIListKind(V2))) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(isNatIListKind(V1)) active(isNatKind(s(V1))) -> mark(isNatKind(V1)) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1,V2))) -> mark(U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2)) active(length(nil)) -> mark(0) active(length(cons(N,L))) -> mark(U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L)) mark(zeros) -> active(zeros) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(0) -> active(0) mark(U11(X1,X2)) -> active(U11(mark(X1),X2)) mark(tt) -> active(tt) mark(U12(X)) -> active(U12(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U21(X1,X2)) -> active(U21(mark(X1),X2)) mark(U22(X)) -> active(U22(mark(X))) mark(isNat(X)) -> active(isNat(X)) mark(U31(X1,X2)) -> active(U31(mark(X1),X2)) mark(U32(X)) -> active(U32(mark(X))) mark(U41(X1,X2,X3)) -> active(U41(mark(X1),X2,X3)) mark(U42(X1,X2)) -> active(U42(mark(X1),X2)) mark(U43(X)) -> active(U43(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U51(X1,X2,X3)) -> active(U51(mark(X1),X2,X3)) mark(U52(X1,X2)) -> active(U52(mark(X1),X2)) mark(U53(X)) -> active(U53(mark(X))) mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(and(X1,X2)) -> active(and(mark(X1),X2)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(nil) -> active(nil) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) U11(mark(X1),X2) -> U11(X1,X2) U11(X1,mark(X2)) -> U11(X1,X2) U11(active(X1),X2) -> U11(X1,X2) U11(X1,active(X2)) -> U11(X1,X2) U12(mark(X)) -> U12(X) U12(active(X)) -> U12(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U21(mark(X1),X2) -> U21(X1,X2) U21(X1,mark(X2)) -> U21(X1,X2) U21(active(X1),X2) -> U21(X1,X2) U21(X1,active(X2)) -> U21(X1,X2) U22(mark(X)) -> U22(X) U22(active(X)) -> U22(X) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U31(mark(X1),X2) -> U31(X1,X2) U31(X1,mark(X2)) -> U31(X1,X2) U31(active(X1),X2) -> U31(X1,X2) U31(X1,active(X2)) -> U31(X1,X2) U32(mark(X)) -> U32(X) U32(active(X)) -> U32(X) U41(mark(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(active(X1),X2,X3) -> U41(X1,X2,X3) U41(X1,active(X2),X3) -> U41(X1,X2,X3) U41(X1,X2,active(X3)) -> U41(X1,X2,X3) U42(mark(X1),X2) -> U42(X1,X2) U42(X1,mark(X2)) -> U42(X1,X2) U42(active(X1),X2) -> U42(X1,X2) U42(X1,active(X2)) -> U42(X1,X2) U43(mark(X)) -> U43(X) U43(active(X)) -> U43(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U51(mark(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(active(X1),X2,X3) -> U51(X1,X2,X3) U51(X1,active(X2),X3) -> U51(X1,X2,X3) U51(X1,X2,active(X3)) -> U51(X1,X2,X3) U52(mark(X1),X2) -> U52(X1,X2) U52(X1,mark(X2)) -> U52(X1,X2) U52(active(X1),X2) -> U52(X1,X2) U52(X1,active(X2)) -> U52(X1,X2) U53(mark(X)) -> U53(X) U53(active(X)) -> U53(X) U61(mark(X1),X2) -> U61(X1,X2) U61(X1,mark(X2)) -> U61(X1,X2) U61(active(X1),X2) -> U61(X1,X2) U61(X1,active(X2)) -> U61(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) and(mark(X1),X2) -> and(X1,X2) and(X1,mark(X2)) -> and(X1,X2) and(active(X1),X2) -> and(X1,X2) and(X1,active(X2)) -> and(X1,X2) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) )