Prädikatenlogik Teil 4
Prädikatenlogik Teil 4
Prädikatenlogik Teil 4
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Elementare Beweistechniken<br />
Übersicht:<br />
1 <strong>Teil</strong> 1: Syntax und Semantik<br />
2 <strong>Teil</strong> 2: Normalformen und Grenzen der <strong>Prädikatenlogik</strong> 1. Stufe<br />
3 <strong>Teil</strong> 3: Modellierung und Beweise<br />
4 <strong>Teil</strong> 4: Substitution, Unifikation und Resolution<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 1/32
Substitution<br />
Unter einer Substitution [x/t] verstehen wir die simultane Ersetzung aller<br />
Vorkommen der Variablen x durch einen Term t. Dieser Ersetzungsvorgang<br />
wird induktiv für Terme und Formeln definiert durch:<br />
(1) x[x/t] = t und für eine Individuenvariable y ≠ x ist y[x/t] = y.<br />
(2) Für eine Individuenkonstante a ist a[x/t] = a.<br />
(3) Für eine n-stellige Funktion f und Terme t 1 , . . . , t n ist<br />
f (t 1 , . . . , t n )[x/t] = f (t 1 [x/t], . . . , t n [x/t]).<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 2/32
Substitution<br />
Unter einer Substitution [x/t] verstehen wir die simultane Ersetzung aller<br />
Vorkommen der Variablen x durch einen Term t. Dieser Ersetzungsvorgang<br />
wird induktiv für Terme und Formeln definiert durch:<br />
(1) x[x/t] = t und für eine Individuenvariable y ≠ x ist y[x/t] = y.<br />
(2) Für eine Individuenkonstante a ist a[x/t] = a.<br />
(3) Für eine n-stellige Funktion f und Terme t 1 , . . . , t n ist<br />
f (t 1 , . . . , t n )[x/t] = f (t 1 [x/t], . . . , t n [x/t]).<br />
(4) Für ein n-stelliges Prädikat P und Terme t 1 , . . . , t n ist<br />
P(t 1 , . . . , t n )[x/t] = P(t 1 [x/t], . . . , t n [x/t]).<br />
(5) Ist α eine Formel und ist α[x/t] definiert, so ist (¬α)[x/t] = ¬α[x/t].<br />
(6) Sind α und β Formeln und sind α[x/t] und β[x/t] definiert, so ist<br />
(α ∨ β)[x/t] = α[x/t] ∨ β[x/t] und (α ∧ β)[x/t] = α[x/t] ∧ β[x/t].<br />
(7) Für eine Formel α und eine Variable y gilt:<br />
(a) Gilt x ∉ freevars(α), so ist (∃yα)[x/t] = ∃yα und (∀yα)[x/t] = ∀yα.<br />
(b) Gilt x ∈ freevars(α), y ∉ vars(t) und ist α[x/t] definiert, so ist<br />
(∃yα)[x/t] = ∃yα[x/t] und (∀yα)[x/t] = ∀yα[x/t].<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 3/32
Substitution<br />
Beispiele:<br />
1. f (x, x, a, y)[x/g(z)] = f (g(z), g(z), a, y)<br />
2. f (x)[x/f (x)] = f (f (x))<br />
3. f (a, g(y))[a/z] oder f (a, g(y))[g(y)/z]<br />
Unzulässige Substitutionen: Nur Variable dürfen ersetzt werden.<br />
4. P(x) ∨ S(x, y)[x/f (g(z)] = P(f (g(z))) ∨ S(f (g(z), y)<br />
5. ∀xP(x)[x/y] = ∀xP(x)<br />
6. ∃xP(x, y)[y/b] = ∃xP(x, b)<br />
7. ∃xP(x, y)[y/g(x)] undefiniert<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 4/32
Substitution<br />
Definition 1 (Substitution)<br />
Für paarweise verschiedene Variablen x 1 , . . . , x n bezeichnen wir mit<br />
[x 1 /t 1 , . . . , x n /t n ] die Substitution, die simultan alle passenden Vorkommen<br />
der Variablen x 1 , . . . , x n durch die Terme t 1 , . . . , t n ersetzt entsprechend<br />
der Vorgaben auf der vorletzten Folie.<br />
Eine Ersetzungsliste [x 1 /t 1 ] . . . [x n /t n ] darf nicht mit einer Substitution<br />
[x 1 /t 1 , . . . , x n /t n ] verwechselt werden.<br />
Eine Ersetzungsliste [x 1 /t 1 ] . . . [x n /t n ] beschreibt die Ausführung der<br />
Einzelsubstitutionen von links nach rechts hintereinander in genau dieser<br />
Reihenfolge.<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 5/32
Substitution<br />
Beispiele:<br />
f (x, y, z)[x/g(a), y/h(x), z/b] = f (g(a), h(x), b)<br />
P(x, f (x), z)[x/f (x), z/x] = P(f (x), f (f (x)), x)<br />
Q(x, y, z)[x/y, y/z, z/x] = Q(y, z, x)<br />
[x/y][y/z][z/a] = [x/z, y/z][z/a]<br />
= [x/a, y/a, z/a]<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 6/32
Unifikation<br />
Satz 2<br />
Seien x eine freie Variable der prädikatenlogischen Formel α und seien<br />
weiter x 1 , . . . , x n die Variablen des Terms t. Wenn die Variablen x 1 , . . . , x n<br />
in α nicht vorkommen, dann gilt für die Substitution [x/t]:<br />
∀xα |= ∀x 1 . . . ∀x n α[x/t]<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 7/32
Satz 3<br />
Sei α eine quantorfreie prädikatenlogische Formel mit Variablen x 1 , . . . x n<br />
sowie σ eine Substitution. Seien y 1 , . . . , y m die Variablen in ασ, dann gilt:<br />
Beispiel:<br />
∀x 1 . . . ∀x n α |= ∀y 1 . . . ∀y n (ασ)<br />
α = (P(x 1 , g(x 2 )) ∨ ¬S(a, x 3 , x 2 )) und σ = [x 1 /f (y 1 ), x 2 /b, x 3 /y 2 ]<br />
ασ = (P(f (y 1 ), g(b)) ∨ ¬S(a, y 2 , b))<br />
∀x 1 ∀x 2 ∀x 3 α |= ∀y 1 ∀y 2 (P(f (y 1 ), g(b)) ∨ ¬S(a, y 2 , b))<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 8/32
Unifikation<br />
Definition 4 (Unifikator)<br />
Seien α 1 und α 2 prädikatenlogische Formeln. Eine Substitution<br />
[x 1 /t 1 , . . . , x n /t n ] heißt Unifikator von α 1 und α 2 , falls gilt<br />
α 1 [x 1 /t 1 , . . . , x n /t n ] = α 2 [x 1 /t 1 , . . . , x n /t n ].<br />
α 1 und α 2 heißen dann unifizierbar.<br />
Beispiele:<br />
α 1 = P(x) ∨ ¬S(x, y, a) und α 2 = P(z) ∨ ¬S(x 1 , b, u)<br />
für σ = [x/z, x 1 /z, y/b, u/a] gilt<br />
α 1 σ = α 2 σ = P(z) ∨ ¬S(z, b, a)<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 9/32
Unifikation<br />
Definition 4 (Unifikator)<br />
Seien α 1 und α 2 prädikatenlogische Formeln. Eine Substitution<br />
[x 1 /t 1 , . . . , x n /t n ] heißt Unifikator von α 1 und α 2 , falls gilt<br />
α 1 [x 1 /t 1 , . . . , x n /t n ] = α 2 [x 1 /t 1 , . . . , x n /t n ].<br />
α 1 und α 2 heißen dann unifizierbar.<br />
Beispiel:<br />
α 1 = P(x) ∨ ¬S(x, a, a) und α 2 = P(z) ∨ ¬S(x 1 , b, u)<br />
Es gibt keinen Unifikator, da a und b Konstantensymbole sind.<br />
Beispiel:<br />
R(f (x)) und R(g(y)) sind nicht unifizierbar (verschiedene<br />
Funktionssymbole).<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 10/32
Unifikation<br />
Definition 5 (Allgemeinster Unifikator)<br />
Ein Unifikator σ der prädikatenlogischen Formeln α 1 und α 2 heißt<br />
allgemeinster Unifikator (most general unifier, mgu) von α 1 und α 2 ,<br />
wenn es zu jedem anderen Unifikator τ von α 1 und α 2 eine Substitution τ ′<br />
existiert, so dass gilt σ ◦ τ ′ = τ.<br />
σ ◦ τ ′ bezeichnet die Hintereinanderausführung der beiden Substitutionen<br />
σ und τ ′ (erst σ anwenden, dann τ ′ ).<br />
Für σ = [y 1 /s 1 , . . . , y m /s m ] und τ ′ = [x 1 /t 1 , . . . , x n /t n ] gilt dann,<br />
σ ◦ τ ′ = [x 1 /t 1 , . . . , x n /t n ][y 1 /s 1 , . . . , y m /s m ]<br />
= [x 1 /(t 1 [y 1 /s 1 , . . . , y m /s m ]), . . . , x n /(t n [y 1 /s 1 , . . . , y m /s m ]), y 1 /s 1 , . . . , y m /s m ]<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 11/32
Allgemeinster Unifikator<br />
Suche nach allgemeinsten Unifikatoren:<br />
Sind P(t 1 , . . . , t n ) und P(t ′ 1 , . . . , t′ n) zwei verschiedene Primformeln, so<br />
wird das erste Paar korrespondierender, verschiedener Terme (s, s ′ ) von<br />
P(t 1 , . . . , t n ) und P(t ′ 1 , . . . , t′ n) dadurch bestimmt, dass man in der<br />
Argumentliste von P von links nach rechts das erste Termpaar sucht, das<br />
in beiden Primformeln verschieden ist. Dabei werden auch die<br />
Argumentlisten der vorkommenden Funktionen in gleicher Weise von links<br />
nach rechts durchsucht.<br />
Beispiele:<br />
1. P(a, x) und P(x ′ , y ′ ): Termpaar (a, x ′ )<br />
2. P(a, x) und P(a, b): Termpaar (x, b),<br />
3. P(a, f (x, b)) und P(a, f (b, x)): Termpaar (x, b)<br />
4. P(a, f (g(x), y)) und P(a, f (h(z), u)): Termpaar (g(x), h(z)).<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 12/32
Unifikation<br />
Unifikationsverfahren nach Robinson:<br />
Seien P(t 1 , . . . , t n ) und P(t ′ 1 , . . . , t′ n) zwei Primformeln.<br />
1 Setze σ = [ ] (leere Substitution) und α 1 = P(t 1 , . . . , t n ), sowie<br />
α 2 = P(t ′ 1 , . . . , t′ n).<br />
2 Falls α 1 und α 2 zeichenweise gleich sind, ist σ der allgemeinste<br />
Unifikator.<br />
3 Bestimme in α 1 und α 2 das erste Paar korrespondierender,<br />
verschiedener Terme (s, s ′ ).<br />
1 Falls s eine Variable ist und s nicht in s ′ vorkommt, setze<br />
σ = σ ◦ [s/s ′ ] und α 1 := α 1 [s/s ′ ], sowie α 2 := α 2 [s/s ′ ]. Gehe zu 2.<br />
2 Falls s ′ eine Variable ist und s ′ nicht in s vorkommt, setze<br />
σ = σ ◦ [s ′ /s] und α 1 := α 1 [s ′ /s], sowie α 2 := α 2 [s ′ /s]. Gehe zu 2.<br />
3 Sonst: Die Ausgangsformeln sind nicht unifizierbar.<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 13/32
Unifikations<br />
Beispiel:<br />
α 1 = P(x, x, f (y), a, x) und α 2 = P(x, z, f (w), z, u)<br />
1. σ = [ ], Paar korrespondierender, verschiedener Terme (x, z)<br />
2. σ = [x/z]<br />
α 1 := α 1 [x/z] = P(z, z, f (y), a, z) und<br />
α 2 := α 2 [x/z] = P(z, z, f (w), z, u)<br />
3. σ := [x/z][y/w] Termpaar (w, y)<br />
α 1 := α 1 [y/w] = P(z, z, f (w), a, z) und<br />
α 2 := α 2 [y/w] = P(z, z, f (w), z, u)<br />
4. σ = [x/z][y/w][z/a] Termpaar (a, z)<br />
α 1 := α 1 [z/a] = P(a, a, f (w), a, a) und<br />
α 2 := α 2 [z/a] = P(a, a, f (w), a, u)<br />
5. σ = [x/z][y/w][z/a][u/a] Termpaar (a, u)<br />
α 1 := α 1 [z/a] = P(a, a, f (w), a, a) und<br />
α 2 := α 2 [z/a] = P(a, a, f (w), a, a)<br />
Allgemeinster Unifikator ist σ = [x/a, y/w, z/a, u/a]<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 14/32
Unifikation<br />
Beispiele:<br />
1. α 1 = P(x, b) und α 2 = P(x, a)<br />
Es gibt keinen allgemeinsten Unifikator:<br />
erstes Paar korrespondierender, verschiedener Terme ist (b, a), beide<br />
Terme sind Konstanten.<br />
2. α 1 = P(f (x)) und α 2 = P(g(x))<br />
Es gibt keinen allgemeinsten Unifikator:<br />
erstes Paar korrespondierender, verschiedener Terme ist (f (x), g(x)),<br />
verschiedene Funktionssymbole.<br />
3. α 1 = P(x) und α 2 = P(f (x))<br />
Es gibt keinen allgemeinsten Unifikator:<br />
erstes Paar korrespondierender, verschiedener Terme ist (x, f (x)), x<br />
kommt in f (x) vor.<br />
4. α 1 = P(f (y)) und α 2 = P(f (x))<br />
σ = [y/x] ist ein allgemeinster Unifikator, σ ′ = [x/y] ebenso.<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 15/32
Resolution<br />
Voraussetzung:<br />
Geschlossene Formel in Skolem Normalform mit Kern in KNF<br />
Φ = ∀x 1 . . . ∀x n (α 1 ∧ . . . ∧ α r )<br />
1. α i sind Klauseln für 1 ≤ i ≤ r<br />
2. α i enthalten keine Quantoren für 1 ≤ i ≤ r<br />
3. Φ enthält keine freien Variablen<br />
Ziel:<br />
Kalkül (Beweisregeln), um zu entscheiden, ob Φ widerspruchsvoll ist,<br />
analog zur aussagenlogischen Resolution.<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 16/32
Resolution<br />
In der <strong>Prädikatenlogik</strong> benötigen wir eine stärkere Regel, um Literale<br />
zusammenziehen zu können. Betrachten wir beispielsweise die Klausel<br />
∀x∀y(P(x, y) ∨ P(y, x))<br />
Als Spezialfall dieser Aussage erhalten wir die Klausel ∀x P(x, x). Wenn<br />
also zwei Literale einer Klausel α mit einer Substitution σ unifiziert werden<br />
können, dann enthält ασ zwei gleiche Literale, die mit Hilfe der<br />
Idempotenzregel zu einem Literal zusammengezogen werden können. Für<br />
das Beispiel bedeutet dies mit σ = [y/x]:<br />
∀x∀y(P(x, y) ∨ P(y, x)) |= ∀x(P(x, x) ∨ P(x, x)) |= ∀xP(x, x)<br />
Notation : Klauseln {L 1 ∨ . . . ∨ L r } in Mengenschreibweise {L 1 , . . . , L r }<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 17/32
Faktorisierung<br />
Definition 6<br />
Binäre Faktorisierungsregel<br />
{L 1 , . . . , L k , L, L ′ }<br />
{L 1 σ, . . . , L k σ, Lσ} (Fakt)<br />
mit σ allgemeinster Unifikator von L und L ′ .<br />
Die so gewonnene neue Klausel heißt Faktor der Ausgangsklausel.<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 18/32
Faktorisierung<br />
Beispiel:<br />
{P(x), ¬R(x, z), P(y), P(a)}<br />
(Fakt)<br />
{P(y), ¬R(y, z), P(a)}<br />
mit allgemeinstem Unifikator σ = [x/y] für P(x) und P(y)<br />
{P(y), ¬R(y, z), P(a)}<br />
(Fakt)<br />
{P(a), ¬R(a, z)}<br />
mit allgemeinstem Unifikator σ = [y/a] für P(y) und P(a)<br />
Es gilt:<br />
∀x∀y∀z (P(x) ∨ ¬R(x, z) ∨ P(y) ∨ P(a)) |= ∀z (P(a) ∨ ¬R(a, z))<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 19/32
Resolution<br />
Konjunktion von allquantifizierten Klauseln.<br />
α = ∀x∀z(¬P(a, x) ∨ ¬P(x, z)) ∧ ∀x∀y(P(a, b) ∨ P(x, y) ∨ P(y, x))<br />
Umbennenung<br />
α ≈ α ∧ ∀x∀y(¬P(a, x) ∨ ¬P(x, y)) ∧ ∀u∀v(P(a, b) ∨ P(u, v) ∨ P(v, u))<br />
Die beiden variablenfremden Klauseln können wir unter einem<br />
gemeinsamen Präfix zusammenfassen durch die Quantifizierungsregeln.<br />
α ≈ α ∧ ∀x∀y∀u∀v((¬P(a, x) ∨ ¬P(x, y)) ∧ (P(a, b) ∨ P(u, v) ∨ P(v, u)))<br />
Auswahl von Literalen für die Resolution<br />
Wähle ¬P(a, x) aus Klausel 1 und P(u, v) aus Klausel 2.<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 20/32
Resolution<br />
Unifikation<br />
P(a, x), P(u, v) unifizieren =⇒ σ = [u/a, v/x] allgemeinster Unifikator<br />
Falls ein allgemeinster Unifikator σ existiert, bilden wir die beiden<br />
entsprechend spezialisierten Klauseln.<br />
α ≈ α ∧ ∀x∀y((¬P(a, x) ∨ ¬P(x, y)) ∧ (P(a, b) ∨ P(a, x) ∨ P(x, a)))<br />
Die Anwendung der Resolutionsregel auf die spezialisierten Klauseln<br />
entspricht dann einem Kettenschluss.<br />
α ≈ α ∧ ∀x∀y((P(a, x) → ¬P(x, y)) ∧ ((¬(P(a, b) ∨ P(x, a)) → P(a, x)))<br />
Die Resolvente ist insgesamt eine Folgerung der Ausgangsformel.<br />
α ≈ α ∧ ∀x∀y(¬P(x, y) ∨ P(a, b) ∨ P(x, a))<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 21/32
Resolution<br />
Auch diese Schritte werden zu einer einzigen Regel, der sogenannten<br />
Resolutionsregel, zusammengefasst, die zwei Klauseln einer Formel über<br />
ein Literalpaar resolviert.<br />
Definition 7<br />
Binäre Resolutionsregel<br />
{L 1 , . . . , L k , L} {K 1 , . . . , K r , ¬L ′ }<br />
(Res)<br />
{L 1 σ, . . . , L k σ, K 1 σ, . . . , K r σ}<br />
mit σ allgemeinster Unifikator von L und L ′ .<br />
Beachte, dass durch die binäre Resolutionsregel genau zwei Literale in der<br />
Resolvente eliminiert wurden.<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 22/32
Resolution<br />
Beispiele:<br />
{¬P(a, x), ¬P(x, z)}<br />
{¬P(a, a)}<br />
{P(a, b), P(x, y), P(y, x)}<br />
[x/a, z/a]<br />
{P(a, b), P(x, x)}<br />
{P(a, b)}<br />
[y/x]<br />
[x/a]<br />
{¬P(x), P(f (x)))}<br />
{¬P(x), P(f (f (x))))}<br />
{¬P(y), P(f (y)))}<br />
[y/f (x)]<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 23/32
Resolution<br />
Binäre Faktorisierung:<br />
1 Wähle eine Klausel κ aus.<br />
2 Wähle in der Klausel κ zwei Literale L und L ′ mit gleichem<br />
Vorzeichen (negiert oder nicht negiert) und dem gleichen Prädikat.<br />
3 Bestimme den allgemeinsten Unifikator σ für L und L ′ .<br />
4 Bestimme den Faktor:<br />
Bilde κσ und eliminiere darin ein Vorkommen von Lσ.<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 24/32
Resolution<br />
Binäre Resolution:<br />
1 Wähle zwei Klauseln κ 1 und κ 2 aus.<br />
2 Benenne die Variablen so um, dass keine Variable in beiden Klauseln<br />
vorkommt. Die Klauseln sind dann variablenfremd.<br />
3 Wähle in der Klausel κ 1 ein Literal L und in κ 2 ein komplementäres<br />
Literal L ′ (d.h. L negiert und L ′ positiv oder umgekehrt), wobei L und<br />
L ′ Literale über dem gleichen Prädikat sind.<br />
4 Bestimme den allgemeinsten Unifikator σ für L und L ′ .<br />
5 Bestimme die Resolvente:<br />
Zusammenfassung der Literale von κ 1 σ und von κ 2 σ ohne die von L<br />
un L ′ abgeleiteten Instanzen Lσ und von L ′ σ.<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 25/32
Resolution<br />
Satz 8<br />
Sei α eine geschlossene prädikatenlogische Formel in Skolem Normalform<br />
mit Kern in KNF. Dann gilt:<br />
α widerspruchsvoll genau dann, wenn α | FAKT+RES<br />
⊔ gilt.<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 26/32
Resolution<br />
Sei k eine beliebige, aber feste natürliche Zahl:<br />
Die leere Klausel wurde nach höchstens k Resolutionsschritten (binäre<br />
Faktorisierung und binäre Resolution) hergeleitet.<br />
Dann ist α widerspruchsvoll.<br />
Nach höchstens k Resolutionen war keine neue Klausel mehr<br />
generierbar und die leere Klausel wurde nicht generiert. Dann ist α ist<br />
erfüllbar.<br />
Nach k Resolutionsschritten war die leere Klausel noch nicht generiert<br />
worden und die Bildung neuer Resolventen war noch nicht beendet.<br />
Dann ist offen, ob α erfüllbar ist.<br />
Bemerkung:<br />
Das Erfüllbarkeitsproblem für die <strong>Prädikatenlogik</strong> erster Stufe ist<br />
unentscheidbar.<br />
(Nachweis z.B. durch Beschreibung des Halteproblems für<br />
Turingmaschinen, vgl. Vorlesung EBKfS)<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 27/32
Unit-Resolution<br />
analog zur Aussagenlogik<br />
Definition 9 (Unit-Resolutionsregel)<br />
Unter der Unit-Resolutionsregel verstehen wir den Spezialfall der binären<br />
Resolutionsregel, bei dem eine der Elternklauseln nur aus einem Literal<br />
besteht:<br />
{L} {K 1 , . . . , K r , ¬L ′ }<br />
(Unit-Res)<br />
{K 1 σ, . . . , K r σ}<br />
mit σ allgemeinster Unifikator von L und L ′ .<br />
Beobachtung:<br />
Die Unit-Resolution ist nicht widerlegungsvollständig (siehe Ausagenlogik).<br />
Φ = (P(a) ∨ R(a)) ∧ (¬P(a) ∨ R(a)) ∧ (P(a) ∨ ¬R(a)) ∧ (¬P(a) ∨ ¬R(a))<br />
ist widerspruchvoll, aber es gilt nicht Φ | Unit-Res<br />
⊔.<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 28/32
Unit-Resolution<br />
Beispiel:<br />
Jeder Student hat einen Studentenausweis. Jeder Studentenausweis hat<br />
eine Matrikelnummer. Meier ist Student und Müller ist Student.<br />
β = Stud(meier) ∧ Stud(mueller)∧<br />
∀x((Stud(x) → Ausweis(x)) ∧ (Ausweis(x) → Matnr(x)))<br />
logisch äquivalent zu<br />
α = ∀x(Stud(meier) ∧ Stud(mueller)∧<br />
(Stud(x) → Ausweis(x)) ∧ (Ausweis(x) → Matnr(x)))<br />
Anfrage:<br />
Hat Müller eine Matrikelnummer?<br />
Folgt Matnr(mueller) aus der Formel?<br />
Gilt α |= Matnr(mueller)?<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 29/32
Unit-Resolution<br />
Beispiel (Fortsetzung):<br />
α = ∀x(Stud(meier) ∧ Stud(mueller)∧<br />
(Stud(x) → Ausweis(x)) ∧ (Ausweis(x) → Matnr(x)))<br />
Gilt α |= Matnr(mueller)?<br />
α |= Matnr(mueller)<br />
gdw. α ∧ ¬Matnr(mueller) ist widerspruchsvoll<br />
gdw. α ∧ ¬Matnr(mueller) | FAKT+RES<br />
⊔<br />
Unit-Resolutionswiderlegung<br />
Stud(mueller), (¬Stud(x) ∨ Ausweis(x)) | Unit-Res<br />
σ = [x/mueller]<br />
Ausweis(mueller), (¬Ausweis(x) ∨ Matnr(x)) | Unit-Res<br />
σ = [x/mueller]<br />
Matnr(mueller), ¬Matnr(mueller) | Unit-Res<br />
⊔<br />
Ausweis(mueller),<br />
Matnr(mueller),<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 30/32
Folgerung - Resolution<br />
Frage: Gilt α |= β für geschlossene Formeln α und β?<br />
1 Bilde α ∧ ¬β (indirekt).<br />
2 Transformiere α ∧ ¬β in eine erfüllbarkeits-äquivalente Skolem<br />
Normalform mit Kern in KNF; sei dies Φ.<br />
3 Versuche Φ | FAKT+RES<br />
⊔ zu zeigen.<br />
Es gilt α |= β, falls die leere Klausel herleitbar ist<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 31/32
Folgerung - Resolution<br />
Beispiel:<br />
Transformationsschritte<br />
1 1. ∀x∀yP(x, y, a) |= ∃y∀xP(x, x, y)<br />
2 2. ∀x∀yP(x, y, a) ∧ ¬(∃y∀xP(x, x, y))<br />
3 3. ∀x∀yP(x, y, a) ∧ ∀y∃x¬P(x, x, y)<br />
4 4. ∀x∀yP(x, y, a) ∧ ∀y 1 ∃x 1 ¬P(x 1 , x 1 , y 1 )<br />
5 5. ∀y 1 ∃x 1 ∀x∀y (P(x, y, a) ∧ ¬P(x 1 , x 1 , y 1 )<br />
6 6. ∀y 1 ∀x∀y (P(x, y, a) ∧ ¬P(f (y 1 ), f (y 1 ), y 1 ))<br />
Es gibt eine Herleitung zur leeren Klausel, also gilt die Folgerung.<br />
(Der allgemeinste Unifikator ist [x/f (a), y/f (a), y 1 /a])<br />
<strong>Prädikatenlogik</strong> H. Kleine Büning 32/32