Blatt 8 - userpages

Werbung
Universität Koblenz-Landau
FB 4 Informatik
1
Prof. Dr. Viorica Sofronie-Stokkermans∗
2
Dipl.-Inform. Markus Bender∗
16.06.2017
Übung zur Vorlesung Logik für Informatiker
Aufgabenblatt 8
Abgabe bis 23.06.2017, 17:00 s.t.
Aufgabe 8.1
Sei Σ = (Ω, Π) eine Signatur, wobei
• Ω = {a/0, f /1, g/1, h/2}, und
• Π = {p/2, ≈/2}.
Ferner sei X eine Menge von Variablen und x, y, z ∈ X.
Berechnen Sie die Ergebnisse der folgenden Substitutionen:
I) g h(a, x), f (x) [a/x]
II) p g x, f (y) , g f (y), x [y/x, x/y]
III) ∃ x p h(f (y), x), f (y) [x/y]
IV) ∀ x g f (y), x ≈ f g(y, x) [y/x, f (x)/y]
!
[f (a)/x, y/z]
V) ∃ y p x, f (a) ∨ h(z, a) ≈ y → ∀ x p x, f (a)
VI)
!
∀ x f x ≈ g y, z
∧
! !
∃ z f x ≈ h a, f (z)
[z/x, a/y, f (a)/z]
Aufgabe 8.2
Sei Σ = (Ω, Π) eine Signatur, wobei
• Ω = {0/0, 1/0, p/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 = (Z, {0A , 1A , pA : Z → Z, +A : Z × Z → Z}, {≈A }) mit
• 0A = 1 ∈ Z
• 1A = 0 ∈ Z
• pA (n1 ) = n1 − 1 ∈ Z
• +A (n1 , n2 ) = n1 + n2 ∈ Z
• ≈A ist die Gleichheit, d.h. ≈A = {(n, n) | n ∈ Z}
• β1 : X → Z, definiert durch β1 (x) = 7, β1 (y) = 5
• β2 : X → Z, definiert durch β2 (x) = 0, β2 (y) = 3
Evaluieren Sie
I) A(β) p(1) + p(p(x) + 0) ,
II) A(β) x + 0 ≈ p(y) + p(1) , und
III) A(β) p(0) + p(0) ≈ p(p(0)) , für
a) β = β1 ,
b) β = β2 ,
Gehen Sie dabei in klaren und leicht nachvollziehbaren Schritten vor.
Aufgabe 8.3
Erstellen Sie die Wissensbasis solution08.pl, und definieren Sie in ihr die Prädikate
I) istAufsteigendSortiert(L), das genau dann wahr ist, wenn die Liste L eine monoton steigende Liste von Zahlen ist.
II) istAbsteigendSortiert(L), das genau dann wahr ist, wenn die Liste L eine monoton
fallende Liste von Zahlen ist.
L kann eine Variable oder eine Liste von ganzen Zahlen mit beliebiger Länge sein.
Beim Aufruf mit einer Variablen soll 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,
• den Vergleich ‘<’, der der Relation < entspricht,
• das Prädikat ‘reverse(L1, L2)’, das genau dann wahr ist, wenn L1 das Reverse von
L2 ist.
Hinweis: Beachten Sie, dass hier lediglich von ‘monoton’ und nicht von ‘streng monoton’ gesprochen wird. Entsprechend soll istAufsteigendSortiert([1,2,2,3]) und
istAbsteigendSortiert(3,3,2,1,1) zum Ergebnis true führen.
Klarstellung: Beachten Sie weiterhin, dass Sie zwar das built-in ’<’ verwenden dürfen,
nicht jedoch ’<=’.
Achten Sie darauf, dass es beim Laden Ihrer Wissensbasis zu keinen Fehlern oder Warnungen kommt.
Aufgabe 8.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/
ss17logic.html einsehen können.
Bei Fragen zu Ihrer Korrektur wenden Sie sich an [email protected].
Herunterladen