Universität Koblenz-Landau FB 4 Informatik 1 Prof. Dr. Viorica Sofronie-Stokkermans∗ 2 Dipl.-Inform. Markus Bender∗ 14.07.2017 Übung zur Vorlesung Logik für Informatiker Aufgabenblatt 12 Abgabe bis 20.07.2017, 8:00 s.t. Hinweis: Bitte beachten Sie die abweichende Abgabefrist. Hinweis: In Belangen der Klausurzulassung ist dies ein Bonusblatt. Wenn Sie dieses Blatt nicht einreichen, entstehen Ihnen keinen Nachteile bei der Klausurzulassung. Sie haben mit dem Blatt aber die Möglichkeit zusätzliche Punkte im Bereich der Prädikatenlogik und im Bereich Prolog zu erlangen und Aufgabentypen erneut zu üben. Aufgabe 12.1 Sei Σ = (Ω, Π) eine Signatur, wobei • Ω = {a/0, f /1, h/2}, und • Π = {p/1, ≈/2}. Ferner sei X eine Menge von Variablen und x, y, z ∈ X. Markieren Sie durch Ankreuzen, welcher der folgenden Ausdrücke über Σ und X zu welchem der genannten Konzepten gehört. Dabei steht NNF für die Negationsnormalform PNF für die Pränexnormalform und SNF für die Skolemnormalform. Hinweis: Es können mehre Spalten zutreffen, d.h. es ist erlaubt mehr als nur 1 Kreuz pro Zeile zu setzen. 1 2 3 4 5 6 7 8 9 10 11 12 Ausdruck x ≈ f (x) ∃ x ¬p(x) h(f (y), a) ¬p(f (f (a))) ¬(h(a, x) ≈ x) ∀ x (¬(a ≈ x)) p(a) ∧ ∀ x p(x) ∀ x ∃ y (y ≈ x) f (h(y, h(a, y))) ¬(p(a) ∧ x ≈ x) ¬∀ x (a ≈ f (x)) (a ≈ x) ∨ (a ≈ z) Term Atom Literal Klausel Formel NNF PNF SNF Aufgabe 12.2 Sei Σ = (Ω, Π) eine Signatur, wobei • Ω = {a/0, f /1}, und • Π = {p/1, q/2, r/3}. Ferner seien X eine Menge von Variablen und u, u0 , w, x, y, z ∈ X. a) Geben Sie für die folgende Formel über Σ und X eine äquivalente Formel in Negationsnormalform an. ¬∃ x ∃ y p(f (y)) → ∀ z ¬p(f (x)) ∨ r(x, y, z) b) Geben Sie für die folgende Formel über Σ und X eine äquivalente Formel in bereinigter Form an. ! ! ∀ w ∃ x ∀ y r(x, w, y) ∨ ∃ y q(a, y) → ∀ x ∃ z q(x, z) ∧ ¬q(w, y) c) Geben Sie für die folgende Formel über Σ und X eine äquivalente Formel in Pränexnormalform an. ∀ w p(w) ∨ ∀ x ¬p(x) ∧ ∃ y ∃ z r(y, a, z) ∨ ¬q(f (y), z) d) Bringen Sie die folgende Formel über Σ und X in Skolemnormalform: ∃ u ∀ u0 ∃ w ∃ x ∀ y ∃ z ∀ z 0 r(z 0 , a, z) ∨ r(x, u, y) ∨ r(u0 , f (u), w) e) Geben Sie für die folgende Formel über Σ und X eine äquivalente Formel mit Matrix in konjunktiver Normalform an. ∀x ¬p(x) ∧ q(x, f (x)) ∨ p(f (a)) ∨ q(a, x) f) Stellen Sie die folgende Formel über Σ und X als Klauselmenge dar. ∀ x ∀ y ¬q(x, z) ∨ p(f (y)) ∨ r(x, a, y) Aufgabe 12.3 Sei Σ = (Ω, Π) eine Signatur, wobei • Ω = {a/0, b/0, c/0, f /1, g/1, h/2} und • Π = ∅. Ferner sei X eine Menge von Variablen und t, v, w, x, y, z ∈ X. Gegeben sind die folgenden 3 Unifikationsprobleme über Σ und X. ? I) {f (h(x, g(x))) = f (h(y, y))} ? II) {f (h(g(x), f (a))) = f (h(g(c), f (x)))} ? ? ? ? ? ? III) {t = b, x = f (t), v = g(x), f (v) = y, w = f (x), g(w) = z} a) Wenden Sie den Martelli-Montanari Algorithmus auf die gegebenen Probleme an. Notieren Sie dabei auch die einzelnen Zwischenschritte. Jeder Schritt soll genau einer 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 12.4 Sei Σ = (Ω, Π) eine Signatur, wobei • Ω = {0/0, f /1, g/2}, und • Π = {p/1, ≈/2}. Ferner sei X eine Menge von Variablen und x, y ∈ X. Gegeben sind die Struktur A und die Belegungen β: • A = (N, {0A , fA : N → N, gA : N × N → N}, {pA , ≈A }) mit – – – – – 0A = 1 ∈ N fA (n) = n + n + 1 ∈ N gA (n1 , n2 ) = n1 + n2 ∈ N pA (n) = {n | n ist gerade} ≈A ist die Gleichheit, d.h. ≈A = {(n, n) | n ∈ N} • β : X → N, definiert durch β(x) = 1, β(y) = 11 Evaluieren Sie I) A(β)(g(f (x), f (y))) II) A(β)(∀ x p(f (x))) III) A(β)(∀ x ∃ y (x ≈ f (y))) IV) A(β)(∃ x ∃ y ((f (x) ≈ y) → (0 ≈ g(g(y, x), x)))) Aufgabe 12.5 Sei Σ = (Ω, Π) eine Signatur, wobei • Ω = {a/0, b/0, f /1}, und • Π = {p/2, q/2}. Ferner sei X eine Menge von Variablen und x, y ∈ X. Gegeben seien die folgenden Formelen über Σ und X: F = p(f (a), b) ∧ p(f (b), a) ∧ ∧ ∀ x ¬p(f (a), x) ∨ q(a, x) ∀ x ∀ y ¬p(f (b), x) ∨ ¬p(f (a), y) ∨ ¬p(b, y) ∨ ¬q(x, y) G = ¬p(b, b) Verwenden Sie den Resolutionskalkül, um zu begründen, dass F |= G. Geben Sie dabei explizit alle Unifikatoren, Umbenennungen und Faktoren an. Wenden Sie auch die Substitution explizit an und geben Sie das Ergebnis entsprechend an. Führen Sie keine Vereinfachungen an der gegebenen Klauselmenge durch. Aufgabe 12.6 Sei Σ = (Ω, Π) eine Signatur, wobei • Ω = ∅, und • Π = {p/1, q/1, r/2}. Ferner sei X eine Menge von Variablen und x, y ∈ X. Gegeben sei die folgende Formel über Σ und X: F = ¬ ∀ x p(x) → (∃ y r(x, y)) ∨ ∀ x ¬p(x) ∨ ∃ x ∃ y r(x, y) ∨ q(y) Verwenden Sie den Tableaukalkül mit freien Variablen, um zu begründen, dass F allgemeingültig ist. Führen Sie keine Vereinfachungen an der gegebenen Formel durch. Aufgabe 12.7 Erstellen Sie die Wissensbasis solution12.pl, und definieren Sie in ihr die folgenden Prädikate: • eev(AltesE, NeuesE, AlteL, NeueL) (ersetze erstes Vorkommen), das genau dann wahr ist, wenn die Liste NeueL identisch mit der Liste AlteL ist, bis auf den Punkt, dass das erste (linkeste) Vorkommen des Elements AltesE in AlteL, in der Liste NeueL dem Element NeueE entspricht, d.h. das Prädikat ersetzt das erste Vorkommen von AltesE in AlteL durch NeuesE und gibt die daraus resultierende Liste in NeueL zurück. • elv(AltesE, NeuesE, AlteL, NeueL) (ersetze letztes Vorkommen), das genau dann wahr ist, wenn die Liste NeueL identisch mit der Liste AlteL ist, bis auf den Punkt, dass das letzte (rechteste) Vorkommen des Elements AltesE in AlteL, in der Liste NeueL dem Element NeueE entspricht, d.h. das Prädikat ersetzt das letzte Vorkommen von AltesE in AlteL durch NeuesE und gibt die daraus resultierende Liste in NeueL zurück. • eav(AltesE, NeuesE, AlteL, NeueL)(ersetze alle Vorkommen), das genau dann wahr ist, wenn die Liste NeueL identisch mit der Liste AlteL ist, bis auf den Punkt, dass alle Vorkommen des Elements AltesE in AlteL, in der Liste NeueL dem Element NeueE entspricht, d.h. das Prädikat ersetzt alle Vorkommen von AltesE in AlteL durch NeuesE und gibt die daraus resultierende Liste in NeueL zurück. Sie müssen die folgenden Arten von Eingaben bei beachten: • AltesE ist ein Atom, • NeuesE ist ein Atom, • AlteL ist eine Liste von Atomen, und • NeueL kann eine Liste von Atomen oder eine Variable sein. Beim Aufruf mit Variablen sollen diese entsprechend belegt werden. Prolog soll für jeden Aufruf exakt eine Antwort zurück geben, es gibt also keine Möglichkeit nach weiteren Antworten zu fragen. Bis auf die folgenden Ausnahmen dürfen Sie keine built-in Prädikate und keine Arithmetik verwenden: • den Cut-Operator ‘!’, • das Prädikat ‘fail’, das immer falsch ist, • das Prädikat ‘reverse(L1, L2)’, das genau dann wahr ist, wenn L1 das Reverse von L2 ist. Achten Sie darauf, dass es beim Laden Ihrer Wissensbasis zu keinen Fehlern oder Warnungen kommt. ∗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/ ss17logic.html einsehen können. Bei Fragen zu Ihrer Korrektur wenden Sie sich an [email protected].