Einführung in die Logik für Informatiker

Werbung
A
Fachbereich Mathematik
Dr. Mathias Kegelmann
Peter Lietz
Tobias Löw
Florence Micol
TECHNISCHE
UNIVERSITÄT
DARMSTADT
Sommersemester 2003
7. Juli 2003
Einführung in die Logik für Informatiker
Lösungshinweise zum zehnten Übungsblatt
Präsenzübungen
(P 29) Unifikation
Finde jeweils den allgemeinsten Unifikator der folgenden Formeln bzw. Terme, falls möglich:
Die folgenden (teil-)unifizierten Formeln bzw. Terme wurden mit einer Left-First-Depth-FirstVariante des Unifikationsalgorithmus produziert.
(a) P (x, f (y)), P (g(y, y), z) unifizierbar
Substitution: σ = [g(y, y)/x][f (y)/z], Unifikator: P (g(y, y), f (y))
(b) f (x, g(y)), f (h(y), h(y)) nicht unifizierbar
Teilsubstitution: σ = [h(y)/x], dann Knoten-Mismatch g 6= h
(c) P (f (x, f (x, y)), y), P (f (u, v), v) nicht unifizierbar
Teilsubstitution: σ = [u/x][f (u, y)/v], dann Occurs-Check-Fehler wegen [f (u, y)/y].
(d) P (f (x, y)), Q(v, w) nicht unifizierbar
Knoten-Mismatch P 6= Q
(e) P (f (x, g(y)), x, g(z)), P (f (u, u), w, w) unifizierbar
Substitution: σ = [u/x][g(y)/u][g(y)/w][y/z], Unifikator: P (f (g(y), g(y)), g(y), g(y))
(P 30) Resolutionsverfahren
Zeige, daß die folgenden vier Formeln zusammen inkonsistent sind:
1. ∀ x. ∀ y. P (x, y) → P (y, x)
2. ∀ x. ∀ y. ∀ z. (P (x, y) ∧ P (y, z)) → P (x, z)
3. ∀ x. ∃ y. P (x, y)
4. ∃ x. ¬P (x, x)
Bringen wir in der Konjuktion der Formeln zuerst den ∃-Quantor der letzten Formel und dann die
Quantoren der vorletzten Formel nach vorne und skolemisieren, so erhalten wir folgende Klausen
1. {¬P (x, y), P (y, x)}
2. {¬P (x, y), ¬P (y, z)), P (x, z)}
3. {P (x, f (x))}
4. {¬P (c, c)}
Substitution von 1. mit [f (x)/y] und Resolution mit 3. ergibt
5. {P (f (x), x)}
Substitution von 2. mit [f (x)/y] und Resolution mit 3. ergibt
6. {¬P (f (x), z), P (x, z)}
Substitution von 5. und 6. mit [z/x] und Resolution ergibt
7. {P (z, z)}
Substitution von 7. mit [c/z] und Resolution mit 4. ergibt
8. ∅
(P 31) Unifikation von mehr als zwei Formeln
Finde jeweils den allgemeinsten Unifikator der folgenden Formeln, falls möglich (a ist eine Konstante):
Wir gehen wie im (P 29) vor mit folgender Erweiterung: Unterscheiden sich die Syntaxbäume
an einer Stelle, und ist keine der Knoten eine Variable, dann sind die Bäume nicht unifizierbar,
andernfalls lassen wir einen Baum mit einer Variable an dem Knoten weg, und unifizieren die
restlichen Teilbäume. Gelingt dies, dann ersetzen wir die Variable durch den unifizierten Teilbaum.
(Klar?)
(a) P (a, x, f (g(y))), P (y, f (z), f (z)), P (u, f (g(w)), f (g(w))) Folgende Teilbäume sind zu unifizieren:
• a,y,u: Anwenden der erweiterten Regeln ergibt σ1 = [a/u][a/y]
• x,f (z),f (g(w)):Anwenden der erweiterten Regeln ergibt σ2 = σ1 [g(w)/z][f (g(w))/x]
• a,w,w:Anwenden der erweiterten Regeln ergibt σ3 = σ2 [a/w]
Die Unifizierte Formeln lautet: P (a, f (g(a)), f (g(a)))
(b) Q(x, y), Q(f (y), z), Q(f (f (z)), z) Folgende Teilbäume sind zu unifizieren:
• x,f (y),f (f (z)): Anwenden der erweiterten Regeln ergibt σ1 = [f (z)/y][f (f (z))/x]
• f (z),z,z:Anwenden der erweiterten Regeln ergibt einen Occurs-Check-Fehler bei der
Unifikation von f (z) und z.
Herunterladen