Zur Terminologie: Ein Literal ist entweder eine Aussagevariable oder ihre Negation. Eine Klausel ist eine Menge endlich vieler Literale. Klauseln stehen für die Disjunktion der darin vorkommenden Elemente, d.h. die Klausel {P, ØQ, R} für P Ú ØQ Ú R.
Ist nun eine gegebene endliche Menge von Klausel;
erfüllbar?
Resolution
Dies ist eine Inferenzregel, mit der eine erfüllbare
Mengen von Klauseln erfüllbar erweitert werden kann.
Seien C È {P} und
D È {Ø P}
zwei Klauseln aus einer erfüllbaren Klauselmenge.
Ist in der Erfüllung P wahr, so muß D erfüllt sein,
andernfalls C; also muß in jedem Fall
die Klausel C È D auch
erfüllbar sein.
D.h. wir schließen aus den beiden Klauseln
C È {P} und
D È {Ø P}
auf die Klausel
C È D.
Falls wir die (unerfüllbare) leere Klausel
Æ ableiten können, kann
also die Ausgangsmenge nicht erfüllbar gewesen sein.
Umgekehrt können wir aus unerfüllbaren Klauselmengen
immer auch die leere Menge ableiten (notfalls indem wir
systematisch
alle Ableitungen erzeugen, was aber dauern kann!).
![]() |
Beweis: Wir konstruieren einen Digraphen dessen
Eckenmenge die Menge aller vorkommenden Literale und
deren Negationen ist. Für jede Klausel {A,B}
ziehen wir eine gerichtete Kante von A nach Ø B
und genauso eine gerichtete Kante von B nach Ø A.
In jeder Erfüllung der Klauselmenge impliziert
Falschheit von A Wahrheit von B, also Falschheit von
Ø B.
D.h. die Relation ist eine Teilrelation der Relation
"wenn ... falsch ist, dann auch ...".
Nun berechnen wir die starke Zusammenhangskomponenten des Digraphen. Falls ein Literal mit seiner Negation in derselben Komponente liegt, dann müssen, da ja eins von beiden in jeder Erfüllung falsch ist, beide falsch sein, ein Widerspruch. Also gibt es in diesem Fall gar keine erfüllende Belegung; die Klauselmenge ist unerfüllbar. Andernfalls liegt jedes Literal in einer anderen Komponente
als seine Negation.
Liegen die Literale P und Q in derselben starken Komponente,
so liegen auch ihre Negationen ØP
und ØQ in einer gemeinsamen starken
Komponente (denn P ® P2
® ... ® Q
impliziert ØQ ®
... ® ØP2
® ØP).
Deshalb ist zu jeder starken Komponente die Menge der Negationen
dieser Literale auch eine starke Komponente.
|
![]() |
Ein Literal ist in der Prädikatenlogik eine Primformel oder ihre Negation. Wie oben ist eine Klausel eine Menge endlich vieler Literale und steht für deren Disjunktion.
Wir starten mit einer Aussage. | "x "y $z "u "v [ (R(x,F(y)) Ú S(y)) Ù (Ø S(z) Ú R(z,y)) Ù (Ø S(F(x)) Ú Ø R(x,F(z))) Ù (Ø R(u,v) Ú S(F(v))) ] |
Diese bringen wir (hier durch Einführung des neuen binären Verknüpfungssymbols "G") auf Skolemsche Normalform mit Matrix in konjunktiver Normalform. Sie ist erfüllungsäquivalent zur ursprünglichen Formel, d.h. genau dann erfüllbar, wenn obige es war. | "x "y "u "v [ (R(x,F(y)) Ú S(y)) Ù (Ø S(G(x,y)) Ú R(G(x,y),y)) Ù (Ø S(F(x)) Ú Ø R(x,F(G(x,y)))) Ù (Ø R(u,v) Ú S(F(v))) ] |
Nun betrachten wir die Menge der Klauseln der Matrix. |
{R(x,F(y)), S(y)}
{Ø S(G(x,y)), R(G(x,y),y)} {Ø S(F(x)), Ø R(x,F(G(x,y)))} {Ø R(u,v), S(F(v))} |
Für Variablen können wir Terme einsetzen. Dadurch können wir die Klauselmenge beliebig vergrößern. Hier muß man im Allgemeinen intelligent vorgehen, Stichwort "Unifikation". |
Einsetzen ergibt unter Anderem:
{R(x,F(G(x,y))), S(G(x,y))} {Ø S(G(x,y)), R(G(x,y),x)} {Ø S(F(x)), Ø R(x,F(G(x,y)))} {Ø R(G(x,y),x), S(F(x))} |
Die Ausgangsformel ist genau dann unerfüllbar, wenn wir so eine endliche Klauselmenge konstruieren können, die aussagenlogisch unerfüllbar ist, d.h. aus der sich die leeren Menge mittels Resolution herleiten läßt. |
Aus den vier aussagenlogischen Klauseln
{P1, P2}, {ØP2, P3}, {Ø P4, Ø P1}, {ØP3, P4} ist die leere Klausel herleitbar. |
Mit Vorsicht kann man so auch Folgern. Da Skolemisierung zwar Widersprüchlichkeit, nicht aber die logische Folgerungsbeziehung erhält, muß man dabei aber vorsichtig sein. Es genügt nicht, zu prüfen ob sich die Skolem-Form von B aus der Skolem-Form von A ableiten läßt.