Cláusula de Horn
# Cláusula de Horn

En lógica proposicional, una fórmula lógica es una cláusula de Horn si es una cláusula (disyunción de literales) con, como máximo, un literal positivo. Se llaman así por el lógico Alfred Horn, el primero en señalar la importancia de estas cláusulas en 1951.

Esto es un ejemplo de una cláusula de Horn:

$\neg p\lor \neg q\vee \cdots \vee \neg t\vee u$

Una fórmula como esta también puede reescribirse de forma equivalente como una implicación:

$(p\wedge q\wedge \cdots \wedge t)\rightarrow u$

Una cláusula de Horn con exactamente un literal positivo es una cláusula "definite"; en álgebra universal las cláusulas "definites" resultan (aparecen) como cuasi-identidades. Una cláusula de Horn sin ningún literal positivo es a veces llamada cláusula objetivo (goal) o consulta (query), especialmente en programación lógica.

Una fórmula de Horn es una cadena textual (string) de cuantificadores existenciales o universales seguidos por una conjunción de cláusulas de Horn.

## Uso en PROLOG

La sintaxis de una cláusula de Horn en PROLOG tiene el siguiente aspecto:

que podría leerse así: "A es hija de B si A es mujer y B es padre de A".

En términos lógicos representa la siguiente implicación:

$(mujer(A)\land padre(B,A))\to hija(A,B)$

Por definición de implicación se obtiene la siguiente cláusula de Horn:

$\lnot mujer(A)\lor \lnot padre(B,A)\lor hija(A,B)$

Obsérvese que, en PROLOG, el símbolo :- separa la conclusión de las condiciones. En PROLOG, las variables se escriben comenzando por una letra mayúscula. Todas las condiciones deben cumplirse simultáneamente para que la conclusión sea válida; por tanto, la coma (en algunas versiones de PROLOG se sustituye la coma por el símbolo &) que separa las distintas condiciones es equivalente a la conjunción copulativa.

En cambio la disyunción normalmente no se representa mediante símbolos especiales (aunque puede hacerse con el símbolo ;), sino añadiendo reglas nuevas al programa. En este caso:

que podrían leerse así: "A es hija de B si A es mujer y B es padre de A o A es hija de B si A es mujer y B es madre de A".

