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.