Universität Koblenz-Landau FB 4 Informatik 1 Prof. Dr. Viorica Sofronie-Stokkermans∗ 2 Dipl.-Inform. Markus Bender∗ Übung zur Vorlesung Logik für Informatiker Aufgabenblatt 10 Abgabe bis 24.06.2016, 17:00 s.t. Aufgabe 10.1 Sei Σ = (Ω, Π) eine Signatur, wobei • Ω = {a/0, b/0, f /1, g/2}, und • Π = {p/1, q/2, ≈/2}. Ferner sei X eine Menge von Variablen und x, y, z ∈ X. Berechnen Sie die Ergebnisse der folgenden Substitutionen: I) g g(x, b), g(a, x) [f (a)/x] II) g x, g(z, y) ≈ g g(a, y), x [y/x, x/y] III) ∃ x q g(x, a), g(b, y) [x/y] IV) ∃ x g f (x), f (y) ≈ g g(y, x), g(z, x) [f (y)/x, a/y] ! [x/y, f (a)/z] V) ∀ x q z, f (a) ∨ x ≈ g(y, b) ∨ ∃z p z VI) ! ∃ x g y, z ≈ g a, x ∨ ∀ y q g(z, y), f (x) [a/x, x/y, b/z] 17.06.2016 Aufgabe 10.2 Sei Σ = (Ω, Π) eine Signatur, wobei • Ω = {0/0, 1/0, s/1, +/2}, und • Π = {≈/2}. Ferner sei X eine Menge von Variablen und x, y ∈ X. Gegeben sind die folgenden Struktur A und die Belegungen β1 , β2 : A = (Q+ , {0A , 1A , sA : Q+ → Q+ , +A : Q+ × Q+ → Q+ }, {≈A }) mit • 0A = 1 ∈ Q+ • 1A = 1 3 ∈ Q+ • sA (q) = 1 q ∈ Q+ • +A (q1 , q2 ) = q1 q2 ∈ Q+ • ≈A ist die Gleichheit, d.h. ≈A = {(q, q) | q ∈ Q+ } • β1 : X → Q+ , definiert durch β1 (x) = 2, β1 (y) = 7 • β2 : X → Q+ , definiert durch β2 (x) = 14, β2 (y) = 3 Evaluieren Sie I) A(β)(s((1 + x) + s(0 + y))), II) A(β)(1 + x ≈ s(x) + y), und III) A(β)(s(1) + s(1) ≈ s(s(0))), für a) β = β1 , b) β = β2 , Gehen Sie dabei in klaren und leicht nachvollziehbaren Schritten vor. Aufgabe 10.3 Erstellen Sie die Wissensbasis solution10.pl, und definieren Sie in ihr die folgenden Prädikate: • enthaelt(Liste, Element), das genau dann wahr ist, wenn es mindestens ein Vorkommen des Atoms Element in der Liste Liste gibt. Sie müssen lediglich die folgende Eingabe beachten: Liste ist eine Liste von Atomen mit beliebiger Länge; Element ist ein Atom. • ikb(Element), (ist Kleinbuchstabe) das genau dann wahr ist, wenn Element ein Kleinbuchstabe ist. Sie müssen die folgenden Arten von Eingaben beachten: 1) Element ist ein beliebiges Atom, 2) Element ist eine Variable. • igb(Element), (ist Großbuchstabe) das genau dann wahr ist, wenn Element ein Großbuchstabe ist. Sie müssen die folgenden Arten von Eingaben beachten: 1) Element ist ein beliebiges Atom, 2) Element ist eine Variable. Beim Aufruf mit Variablen sollen diese entsprechend mit konkreten Werten belegt werden, sodass das Prädikat wahr ergibt. 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 verwenden: • den Cut-Operator ‘!’, • das Prädikat ‘fail’, das immer falsch ist, Verwendung von Arithmetik ist nicht gestattet. Achten Sie darauf, dass es beim Laden Ihrer Wissensbasis zu keinen Fehlern oder Warnungen kommt. Hinweis: Beachten Sie, dass Prolog eine Eingabe von Großbuchstabe, z.B. A als Variable interpretiert und nicht als Atom. Um einen Großbuchstaben als Atom zu verwenden, müssen Sie ihn in einfache Anführungszeichen setzen, z.B. ’A’. Hinweis: Im Rahmen dieser Aufgabe gelten weder ’ß’ noch Umlaute als Buchstaben. Sie müssen entsprechend nicht beachtet werden. Aufgabe 10.4 Hinweis: Diese Aufgabe muss von jedem Mitglied der Abgabegruppe selbst erfüllt werden. Erfüllt jemand diese Aufgabe nicht, wird dieses Blatt für diese Person mit allen Konsequenzen als „nicht eingereicht“ bewertet. Legen Sie im SVN unter Verwendung Ihres eigenen Zuganges im Verzeichnis „solutions“ Ihrer Abgabegruppe eine Datei mit dem Namen check_<KENNUNG>.txt an, wobei KENNUNG Ihre Rechnerkennung ist. Im Falle von Markus Bender hieße diese Datei beispielsweise check_mbender.txt. Achten Sie darauf, dass nur Sie selbst diese Datei hochladen, es wird nicht gewertet, wenn ein Gruppenmitglied diese Datei für Sie ins SVN stellt. ∗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/ ss16logic.html einsehen können. Bei Fragen zu Ihrer Korrektur wenden Sie sich an [email protected].