next up previous contents
Next: Problemas Up: Interpretación algorítmica Previous: Elección de procedimientos.   Contents


Tratamiento de la negación

Durante el diseño de un programa en lógica, algunas veces resulta necesario expresar la negación de algunos hechos. A pesar de que la negación existe en la lógica tradicional, ella no aparece en la programación en lógica. Esta carencia puede ser remediada de diferentes formas.

Dado un predicado P puede definierse un nuevo predicado, llamado por ejemplo NO_P, el que deberá ser verdadero cada vez que P sea falso. Para construir el nuevo predicado se utilizarán predicados predefinidos del sistema, que expresan la negación a un nivel básico, como por ejemplo la desigualdad de átomos.

Otra alternativa surge de la utilización del operador «/» interpretando un fallo para derivar un predicado, como la negación del mismo. Así por ejemplo, si se desea definir un predicado para negar a P, y se dispone de un predicado predefinido FAIL que fracasa siempre, se puede escribir:

        NO_P <- P , / , FAIL.
        NO_P <- .

Si la activación de P tiene éxito, entonces se atraviesa el operador «/», y la invocación a FAIL produce un fallo de NO_P. Por eel contrario, si la activación de P falla, entonces se activa el segundo procedimiento, que es una aserción, y NO_P tiene éxito. Este mecanismo, si bien puede ser de utilidad, no representa la implementación general de la negación. Si los predicados tienen variables, el fracaso de NO_P en el primer caso se produce para una cierta instanciación de las variables, mientras que el éxito de NO_P resultante de utilizar el segundo procedimiento, se obtiene para cualquier valor de las mismas.

Con el objeto de clarificar el uso de la negación, ciertos lenguajes como IC-PROLOG, proveen la facilidad de un operaador de cuasi-negación que se implementa interpretando la negación como un fallo, de acuerdo a la llamada asunción del mundo cerrado.


next up previous contents
Next: Problemas Up: Interpretación algorítmica Previous: Elección de procedimientos.   Contents
Cesar Ballardini
2003-10-14
Hosted by www.Geocities.ws

1