01.03.2014 Aufrufe

Prädikatenlogik Teil 4

Prädikatenlogik Teil 4

Prädikatenlogik Teil 4

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!