Hola,
Motivado por una consulta les aclaramos que las precondiciones detalladas en los comentarios de las funciones pedidas son condiciones que se dan por ciertas antes de la llamada de la función en cuestión. Es decir, no tienen que ser chequearlas dentro de la función (*).
Saludos,
Leo
(*) Nota al margen y fuera del obligatorio, sería una buena técnica usar "assert" al inicio de la función para verificar que las precondiciones se cumplen (ver transparencias de clase de test).