Cómo definir una precondición.

            Las precondiciones establecen reglas que se deben cumplir  entre los argumentos de una función. Con ello conseguimos evitar entrar a usar algunas funciones bajo circunstancias para las cuales no funcionarían correctamente o no tendrían sentido.

            La definición de precondiciones se realiza en la zona dedicada a tal efecto que comienza por la palabra reservada "PRECONDICIONES".  En ella tenemos la posibilidad de hacer una declaración de variables, las cuales pueden ser usadas para establecer las precondiciones.  A continuación se procede a definir precondiciones:

            Se escribe el nombre de una función seguido de "(" y a continuación una lista con tantos argumentos como esa función espere, éstos pueden ser variables o funciones a su vez. Se escribe ")". Luego ":" y seguidamente otra función, "(", su lista de argumentos, y por ultimo ")".

            La función que se emplea en la parte izquierda debe haber sido declarada como condicional, es decir, se debe haber empleado "-/>" en su definición, mientras que la función que se use en la parte derecha debe devolver un tipo Booleano con el propósito de poder comprobar si se cumple o no la relación entre los argumentos de la primera.

            Los argumentos de las funciones de ambas partes deben coincidir en número y tipo con los esperados por ellas. Éstos han sido declarados en la definición de la función.

            Además se debe declarar al menos una precondición para cada una de las funciones declaradas como condicionales, pudiendo tener una misma función más de una precondición.

Veamos un ejemplo:

PRECONDICIONES

            n: Elemento

            p: Pila

            apilar(n,p):not(Esllena(p))

            cima(p):not(Esvacia(p))