Blatt 10 - userpages

Werbung
Universität Koblenz-Landau
FB 4 Informatik
Prof. Dr. Viorica Sofronie-Stokkermans
2
Dipl.-Inform. Markus Bender ∗
∗1
26.06.2013
Übung zur Vorlesung Logik für Informatiker
Aufgabenblatt 10
Abgabe bis 01.07.13, 13:00 s.t.
Aufgabe 10.1
Sei Σ = (Ω, Π) eine Signatur, wobei Ω = ∅ und Π = {q/1, r/1, p/2}. Ferner sei X eine
Menge von Variablen und x, y, z ∈ X.
Markieren Sie durch Ankreuzen, welche der folgenden Formeln über Σ und X in NNF,
bereinigt, in Pränexnormalform, in Skolemnormalform sind?
Hinweis: Es können mehre Spalten zutreffen, d.h. es ist erlaubt mehr als nur 1 Kreuz pro
Zeile zu setzen.
NNF bereinigt Pränexnormalform Skolemnormalform
p(x, y) ∨ q(x)
¬(p(x, y) ∨ q(x))
(∀x p(x, y)) ∨ (∀x q(x))
∀x∀y (p(x, y) ∨ q(x))
(∀x p(x, y)) ∨ (∀z r(z) ∨ q(x))
(∀x p(x, y)) ∨ ¬(∃z r(z) ∨ q(x))
∀x∃z∀y (p(x, y) ∨ ¬(r(z) ∨ q(x)))
Aufgabe 10.2
Sei Σ = (Ω, Π) eine Signatur, wobei Ω = ∅ und Π = {p/2}. Ferner sei X eine Menge von
Variablen und x, y, z ∈ X.
Transformieren Sie die folgende prädikatenlogischen Formel über Σ in Pränexnormalform
und geben Sie dabei alle Zwischenschritte explizit an (Negationsnormalform, bereinigte
Form, Pränexnormalform).
∃y∀z(p(z, y) ↔ ¬∃x(p(z, x) ∧ p(x, z)))
Aufgabe 10.3
Sei Σ = (Ω, Π) eine Signatur, wobei Ω = {f /1} und Π = {r/2, p/3}. Sei X eine Menge
von Variablen und v, w, x, y, y1 , z ∈ X.
Sei F die folgende prädikatenlogische Formel in Pränexnormalform in der Signatur Σ:
∃w∀x∃y∀v∃z p(x, y, y1 ) ∧ ¬ p(y1 , w, f (y))
∨ p(x, v, x) ∨ r(f (v), z)
Geben Sie zur Formel F jeweils die folgenden Formen an:
a) die Skolemnormalform
b) die Skolemnormalform mit Matrix in konjunktiver Normalform
c) die Klauselnormalform (in Mengennotation)
Aufgabe 10.4
Sei Ω = {g/1, h/1, f /2} eine Menge von Funktionssymbolen, X eine Menge von Variablen
und v, w, x, y, z ∈ X.
Gegeben sind die folgenden 3 Unifikationsprobleme über der Signatur Σ.
?
?
?
I) {h(y) = h(v), f (x, g(x)) = y, v = f (g(z), x)}
?
?
?
II) {h(y) = h(v), f (x, x) = y, v = g(h(y))}
?
?
?
III) {h(y) = h(v), f (x, g(z)) = y, v = f (g(z), w)}
a) Wenden Sie den Martelli-Montanari Algorithmus auf die gegebenen Probleme an. Notieren Sie dabei auch die einzelnen Zwischenschritte. Jeder Schritt soll der Anwendung
genau einer Regel des Algorithmus’ entsprechen. Die Namen der verwendeten Regeln
sollen auch für jeden Schritt angegeben werden. Achten Sie darauf, den Algorithmus so
lange anzuwenden, bis keine Regeln mehr anwendbar sind.
b) Verwenden Sie die Ergebnisse aus dem vorherigen Aufgabenteil um eine begründete
Aussage über das (Nicht-)Vorhandensein eines Unifikators zu machen. Gibt es einen
Unifikator für ein Probleme, so geben Sie ihn explizit an.
Aufgabe 10.5
Sei Σ = (Ω, Π) eine Signatur, wobei Ω = {a/0, f /1, g/1} und Π = {p/2}.
Zeigen Sie mit Hilfe des Resolutionskalküls, dass die folgenden Formeln unerfüllbar ist:
{
(1) : {p(f (g(a))), p(g(a))},
(2) : {¬p(f (g(a))), p(g(a))},
(3) : {p(f (g(a))), ¬p(g(a))},
(4) : {¬p(f (g(a))), ¬p(g(a))}
}
Aufgabe 10.6
Sei Ω = {a/0, b/0, c/0, d/0, e/0, f /1, g/2, h/2, i/3} eine Menge von Funktionssymbolen,
Π = {p/1, q/2, r/3} eine Menge von Prädikatensymbolen und Σ = (Ω, Π) eine Signatur.
Sei ferner X = {u, v, w, x, y, z} eine Menge von Variablen.
In der Datei allgroups/aufgaben/blatt10.pl sind bereits die Prologprädikate
istKonstante(X) und istVariable(X) vorgegeben, die genau dann wahr sind, wenn X
eine Konstante, respektive eine Variable nach der gegebenen Definition ist. Weiterhin sind
die bekannten logischen Operatoren in der Prädikatenlogik ohne Quantoren definiert.
a) Schreiben Sie ein Prologprädikat istAtom(Element), das genau dann wahr ist, wenn
das Element Element eine atomare Formel in der Prädikatenlogik über der Signatur Σ
ist.
b) Schreiben Sie ein Prologprädikat istFormel(Element), das genau dann wahr ist, wenn
das Element Element eine syntaktisch korrekte Formel der Prädikatenlogik ohne Quantoren in der Signatur Σ ist.
c) Schreiben Sie ein Prologprädikat substituiere(Neu,Alt,AlteFormel,NeueFormel),
das alle Vorkommen der Variablen Alt in der Formel AlteFormel durch den Term Neu
ersetzt und die neue Formel in der Variable NeueFormel ausgibt.
Das Prologprädikat substituiere soll die Substitution in der Prädikatenlogik simulieren, achten Sie also entsprechend darauf, die entsprechenden Randbedingungen einzuhalten.
Verwenden Sie dabei weder Arithmetik, noch builtin-Prologprädikate (Gleichheit, Ungleichheit, Negation und der Cut-Operator sind erlaubt).
∗1
∗2
B 225
B 224
[email protected]
[email protected]
www.uni-koblenz.de/~sofronie
www.uni-koblenz.de/~mbender
Bitte beachten Sie die Modalitäten zur Abgabe, die Sie unter http://userp.uni-koblenz.de/~mbender/
ss13logic.html einsehen können.
Herunterladen