(VAR L N IL M) (RULES zeros -> cons(0) U11(tt) -> tt U21(tt) -> tt U31(tt) -> tt U41(tt) -> U42(isNatIList) U42(tt) -> tt U51(tt) -> U52(isNatList) U52(tt) -> tt U61(tt) -> U62(isNatIList) U62(tt) -> tt U71(tt) -> U72(isNat) U72(tt) -> s(length(L)) U81(tt) -> nil U91(tt) -> U92(isNat) U92(tt) -> U93(isNat) U93(tt) -> cons(N) isNat -> tt isNat -> U11(isNatList) isNat -> U21(isNat) isNatIList -> U31(isNatList) isNatIList -> tt isNatIList -> U41(isNat) isNatList -> tt isNatList -> U51(isNat) isNatList -> U61(isNat) length(nil) -> 0 length(cons(N)) -> U71(isNatList) take(0,IL) -> U81(isNatIList) take(s(M),cons(N)) -> U91(isNatIList) )