(VAR IL L M N X ) (RULES and(tt) -> X length(cons(N)) -> s(length(L)) zeros -> cons(0) length(nil) -> 0 take(0, IL) -> nil take(s(M), cons(N)) -> cons(N) )