Zurück zur Übersicht

Begriff

Unification

Computer Science Logic S4
2 Quellen 0 Lernpfade 1 Backlink enriched

Warum wichtig?

Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.

Du hast zwei Puzzleteile mit Lücken (Variablen). A: f(X, a) (Funktion f mit Variable X und Konstante a). B: f(b, Y) (Funktion f mit Konstante b und Variable Y). Passen sie zusammen? Ja, wenn wir X = b und Y = a setzen. Dann werden beide zu f(b, a). Das ist Unifikation: Das Finden einer Ersetzung (Substitution), die zwei Terme identisch macht. Es ist viel mächtiger als einfaches String.equals(). Es ist das Herz von Prolog und Type Inference (in Haskell/Rust).

Merksatz: Ein algorithmisches Verfahren zur Lösung von Gleichungen zwischen symbolischen Ausdrücken, indem Variablen durch Terme ersetzt werden, sodass die Ausdrücke syntaktisch identisch werden.


Quick-Check

  1. Pattern Matching?
    Ja. Aber Pattern Matching (in Scala/Rust) ist meist "One-Way" (Daten gegen Muster). Unifikation ist "Two-Way" (Muster gegen Muster, beide haben Variablen).
  2. Zeitkomplexität?
    Fast linear (mit Union-Find Datenstruktur). Martelli-Montanari Algorithmus.
  3. Wichtigkeit?
    Ohne Unifikation keine Logik-Programmierung und keine moderne Typ-Inferenz (Hindley-Milner).