Unifikation (Logik)
# Unifikation (Logik)

Unifikation ist eine Methode zur Vereinheitlichung prädikatenlogischer Ausdrücke. Zwei Ausdrücke werden unifiziert, indem ihre Variablen so durch geeignete Terme ersetzt werden, dass die resultierenden Ausdrücke gleich sind. Die Unifikation hat insbesondere in der Computerlogik und Computerlinguistik eine größere Bedeutung erlangt. So nutzt etwa die Inferenzmaschine des Prolog-Interpreters Unifikation. In der Computerlinguistik gibt es sogenannte Unifikationsgrammatiken, die sich auf dieses Konzept stützen. Auch beim Theorembeweisen spielt Unifikation eine große Rolle.

Als Basisoperation liegt der Unifikation die Substitution zu Grunde. Im Rahmen der Prädikatenlogik bedeutet eine Substitution σ innerhalb eines gegebenen Ausdrucks die Ersetzung einer Variablen durch einen Term, in dem diese Variable nicht vorkommen darf. Die Variable wird gewissermaßen durch den Term „instanziiert“.

Wird eine Menge von Ausdrücken $\{A_{1},A_{2},\ldots ,A_{n}\}$ durch eine Substitution σ zu einem äquivalenten Ausdruck substituiert, d. h. $\sigma (A_{1})\equiv \sigma (A_{2})\equiv \cdots \equiv \sigma (A_{n})$, so bezeichnet man σ als Unifikator dieser Ausdrucksmenge. Die Anwendung eines Unifikators auf diese Menge bezeichnet man als Unifikation. Nicht alle Ausdrucksmengen können unifiziert werden.

## Beispiel

Gegeben seien die Ausdrücke $A_{1}=\left(X,Y,f(b)\right)$ und $A_{2}=\left(a,b,Z\right)$. Großbuchstaben stehen dabei für Variablen und Kleinbuchstaben für atomare Ausdrücke.

Ersetzt man in $A_{1}$ nun $X$ durch $a$, $Y$ durch $b$ und in $A_{2}$ $Z$ durch $f\left(b\right)$, so sind sie gleich oder unifiziert. Man erhält

    $\sigma (A_{1})=\left(a,b,f(b)\right)$
    $\sigma (A_{2})=\left(a,b,f(b)\right)$

mit

    $\sigma =\{X\mapsto a,Y\mapsto b,Z\mapsto f(b)\}$.

## Kleinster gemeinsamer Unifikator

Zu einer Menge von Ausdrücken existieren gewöhnlich mehrere Unifikatoren. Man nennt einen Unifikator $\mu$ kleinster gemeinsamer Unifikator oder allgemeinster Unifikator, wenn es für jeden anderen Unifikator $\sigma$ eine Substitution $\tau$ gibt mit $\sigma =\tau \circ \mu$. Dieser ist natürlich nicht notwendigerweise eindeutig.

Mittels des Algorithmus von Robinson nach John Alan Robinson kann man zu unifizierbaren Ausdrücken einen kleinsten gemeinsamen Unifikator finden.

## Unifikationsalgorithmus

Es folgt eine Darstellung des Unifikationsalgorithmus in Pseudocode:

