Horn-Formel
# Horn-Formel

Horn-Formeln sind eine wichtige Art prädikatenlogischer Formeln. Sie spielen eine zentrale Rolle in der logischen Programmierung und sind von Bedeutung für die konstruktive Logik. Benannt wurden sie nach dem US-amerikanischen Mathematiker Alfred Horn.

## Definition

Unter einer Klausel, auch Disjunktionsterm genannt, versteht man die Disjunktion

    $\phi _{1}\vee \phi _{2}\vee \ldots \vee \phi _{n}$

von Literalen $\phi _{i}$, wobei jedes entweder ein atomarer Ausdruck (ein positives Literal) oder die Negation eines solchen (ein negatives Literal) ist.

Eine Horn-Klausel ist eine Klausel mit höchstens einem positiven Literal, d. h. mit höchstens einem Literal, das keine Negation ist.

Im Spezialfall der Aussagenlogik sieht eine typische Horn-Klausel also so aus:

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

In diesem Fall sind bis auf $u$ alle atomaren Ausdrücke (in diesem Beispiel sind es Aussagenvariablen) Negationen.

Eine Horn-Formel ist eine konjunktive Normalform (das heißt eine Konjunktion von Disjunktionen), bei der jeder Disjunktionsterm eine Horn-Klausel ist.

Beispiele:

* $(\neg p\vee \neg q\vee r)\wedge (p\vee \neg q\vee \neg s)\wedge (\neg r\vee \neg s)$

    Die dritte Horn-Klausel hat kein, die beiden anderen Horn-Klauseln haben je ein positives Literal.
* $(x_{1}\vee \neg x_{2}\vee \neg x_{3})\wedge (\neg x_{1}\vee \neg x_{2}\vee \neg x_{3}\vee x_{4})$

## Darstellungsformen von Horn-Klauseln

Horn-Klauseln lassen sich nach den Regeln der Aussagenlogik auch als materiale Implikationen darstellen. So gilt im einfachsten Fall einer Horn-Klausel mit zwei Literalen bekanntlich:

    $\neg \phi \vee \psi =\phi \Rightarrow \psi$

Gemäß Definition kann eine Horn-Klausel genau ein oder gar kein positives Literal (also höchstens einen atomaren Ausdruck) enthalten. Außerdem kann es vorkommen, dass es unter den Literalen gar keine Negationen gibt. Es gibt daher drei Grundtypen von Horn-Klauseln. Die folgende Tabelle gibt einen Überblick über diese drei möglichen Formen einer Horn-Klausel, sowohl als Disjunktion als auch als Implikation.

| Name | Beschreibung | Disjunktion | Implikation | In Worten |
| - | - | - | - | - |
| Zielklausel | Kein positives Literal Mindestens ein negatives Literal | $\neg x_{1}\vee \ldots \vee \neg x_{n}$ | $x_{1}\wedge \ldots \wedge x_{n}\Rightarrow 0$ | $x_{1},\ldots ,x_{n}$ sind nicht alle wahr |
| Definite Hornklausel | Genau ein positives Literal Mindestens ein negatives Literal | $\neg x_{1}\vee \ldots \vee \neg x_{n}\vee y$ | $x_{1}\wedge \ldots \wedge x_{n}\Rightarrow y$ | Wenn $x_{1},\ldots ,x_{n}$ wahr sind, dann ist auch $y$ wahr |
| Faktenklausel | Genau ein positives Literal Kein negatives Literal | $y\!\;$ | $1\Rightarrow y$ | $y\!\;$ ist wahr |

## Erfüllbarkeit

Mit Hilfe des Markierungsalgorithmus können Horn-Formeln in Polynomialzeit auf Erfüllbarkeit getestet werden (zudem ist HORNSAT P-vollständig). Man kann also in Polynomialzeit feststellen, ob eine Variablenbelegung (eine Zuordnung von Wahrheitswerten zu den in der Horn-Formel vorkommenden Literalen) existiert, für welche die Horn-Formel wahr wird. Im Unterschied dazu wird vermutet, dass allgemein für aussagenlogische Formeln kein Polynomialzeit-Algorithmus existiert (siehe Erfüllbarkeitsproblem der Aussagenlogik).

## Anwendung

Die Bedeutung der Horn-Klauseln liegt in der Informatik beim maschinellen Schließen. So werden in der Programmiersprache Prolog Programme als Horn-Klauseln angegeben.

