Die Prädikatenlogik ist eine Erweiterung der Aussagenlogik, wobei Quantoren, Funktions- und Prädikatsymbole hinzukommen. Durch diese Konzepte sind Sachverhalte beschreibbar, die im Rahmen der Aussagenlogik nicht formuliert werden können. In der Aussagenlogik war es z.B. nicht möglich auszudrücken, daß gewisse ``Objekte`` in Beziehung stehen; daß eine Eigenschaft für alle Objekte gilt, oder daß ein Objekt mit einer gewissen Eigenschaft existiert.
Eine (prädikatenlogische) Signatur S ist ein Tupel
, wobei
und
endliche oder abzählbar unendliche Mengen sind mit
und
.
Eine Variable hat die Form
mit
. Ein Prädikatsymbol
hat die Form
und ein Funktionssymbol hat die
Form
mit
und
. Hierbei
heißt i jeweils der Unterscheidungsindex und k die Stellenzahl
oder Stelligkeit. Man definiert
die Menge der Terme
durch einen induktiven Prozeß:
Nun kann man die Menge der prädikatenlogischen
Formeln
definieren:
Eine Struktur ist ein Paar
,
wobei
eine
beliebige aber nicht leere Menge ist, die Grundmenge
oder Universum von
genannt wird. Ferner ist
eine Abbildung, die
![]()

Die Prädikatenlogik ist in folgendem Sinn eine Erweiterung der Aussagenlogik: Falls alle Prädikatsymbole nullstellig sein müssen erhält man Formeln der Aussagenlogik, wobei die nullstelligen Prädikatsymbole die Rolle der atomaren Formeln der Aussagenlogik übernehmen.
Die Begriffe ``Folgerbarkeit``, ``Modell`` und ``erfüllbar`` lassen sich direkt aus der Aussagenlogik übertragen.
Für die Ableitbarkeit kommen weitere logische Axiome zu denen der Aussagenlogik hinzu. Ausserdem gibt es eine weitere Ableitungsregel, nämlich das Generalisieren.
Sei S eine Signatur, s ein Term aus
und x eine Variable.
Für
entsteht
aus
t, indem wir jedes Auftreten von x in t durch s ersetzen.
Für
ist
Wenn wir jedes freie Auftreten von x in A durch s ersetzen, so kommt keine der Variablen in s in den Wirkungsbereich eines Quantors in A.
Als Grundlage für die Generalisierungsrelation kann der Forgerungsbegriff verwendet werden. Da die Folgerbarkeit im allgemeinen Fall aber nicht entscheidbar ist, wird die schwächere Subsumtionsbeziehung bevorzugt. Immer, wenn die Subsumtionsbeziehung gilt, gilt auch die logische Folgerung - aber nicht umgekehrt!
Eine Klausel C1 ist genereller als eine andere Klausel C2, wenn gilt: C1 subsumiert C2.Für Literale gilt:
Ein Literal L1 subsumiert ein anderes Literal L2, wenn es eine SubstitutionDamit wird die Substitution zur Grundlage der Formalisierung der Generalisierung.gibt, so daß
.
Für Hornklauseln gilt folgende Definition der
-Subsumtion:
Eine Hornklausel![]()
-subsumiert eine Hornklausel
, gdw. es eine Substitution
gibt, so daß
, und
.
Die generalisierte
-Subsumtion generalisiert zwei funktionsfreie Hornklauseln bezüglich
gegebenem Hintergrundwissen. Die Substitution
führt für alle Variablen der zu generalisierenden Klausel neue
Konstante ein.
bezeichne eine Substitution von Termen. Dann ist die Generalisierung nach
Buntine folgendermaßen definiert:
Operationalisierung der Definition:
Jede Klausel
der generelleren Klauselmenge kann zurückgeführt werden auf eine
Klausel der spezielleren Klauselmenge, indem
Sei D eine Hornklausel,
und vars eine Funktion, die die Menge der Variablen einer Klausel berechnet.
ist ein lokaler Teil von D genau dann, wenn
und es kein
gibt, welches auch ein lokaler Teil von D ist. Ein lokaler Teil
ist für eine Konstante k:
k-vlokaler Teil gdw.
,
k-llokaler Teil gdw.
.
Eine Hornklausel D heißt k-llokal genau dann, wenn jeder lokale Teil von D ein k-llokaler bzw. ein k-vlokaler Teil ist.
Eine Klausel ist k-lokal, wenn sie einen lokalen Teil von Variablen oder Literalen hat, der k-llokal oder k-vlokal ist.
Ein Term aus einem Klauselkopf K ist mit einer Kette der Länge
0 verbunden. Für den Klauselkörper nimmt man an, daß die
Literale nach ihrer Verbundenheit mit dem Klauselkopf geordnet sind:
. Ein Term t aus
ist genau dann durch eine deterministische Kette der Länge d+1 verbunden,
wenn
Eine Klausel ist ij-deterministisch, wenn sie
Das Ausführen eines Programms kann aufgefaßt werden als das (automatische) Herleiten der leeren Klausel aus einer gegebenen Klauselmenge, zusammen mit einer Antworterzeugungskomponente. Die aus dem Resolutionsbeweis extrahierte Antwort kann dann als Rechenergebnis des (Logik-) Programms aufgefaát werden.
Sei eine i.a. erfüllbare Klauselmenge F gegeben. Dieses F kann man als ein (Logik-) Programm auffassen: In F kommen gewisse Prädikate und Funktionen vor und es werden durch die Klauseln in F gewisse Aussagen über deren Beziehung zueinander gemacht.
Es soll durch die Logik-Programmierung nicht nur die Frage, ob die Existenz eines (oder mehrerer) Objekte mit gewissen Eigenschaften aus dem Programm F folgt, vom Auswertungsmechanismus mit ja oder nein beantwortet werden. Es soll vielmehr im ja-Fall ein entsprechendes Objekt (oder möglicherweise alle) ausgegeben werden.
Man will z.B. wissen, ob G aus F folgt. Dazu testet man mittels Resolution,
ob
unerfüllbar
ist.