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 9 Abgabe bis 30.06.2017, 17:00 s.t. Aufgabe 9.1 Sei Σ = (Ω, Π) eine Signatur, wobei • Ω = {1/0, s/1, ∗/2}, und • Π = {p/1, ≈/2}. Ferner sei X eine Menge von Variablen und x, y ∈ X. Gegeben sind die Struktur A und die Belegung β: • A = (Q, {1A , sA : Q → Q, ∗A : Q × Q → Q}, {pA , ≈A }) mit – 1A = 1 ∈ Q – sA (q1 ) = q1 + 1 ∈ Q – ∗A (q1 , q2 ) = q1 + q2 ∈ Q – pA ⊆ Q, n ∈ pA genau dann, wenn n gerade ist – ≈A ist die Gleichheit, d.h. ≈A = {(n, n) | n ∈ Q} • β : X → Q, definiert durch β(x) = 11, β(y) = 7 Evaluieren Sie I) A(β)( s(s(x) ∗ 1) ∗ y ), II) A(β)( s(x ∗ y) ≈ s(x) ∗ 1 ), III) A(β)( ∀ x ∀ y (s(x ∗ y) ≈ s(x) ∗ y) ), IV) A(β)( ∃ y p(y ∗ x) ), V) A(β)( ∀ x ∃ y x ≈ s(y) ∧ ¬p(x) → p(y) ). Gehen Sie dabei in klaren und leicht nachvollziehbaren Schritten vor. 23.06.2017 Aufgabe 9.2 Sei Σ = (Ω, Π) eine Signatur, wobei • Ω = {1/0, s/1, ∗/2}, und • Π = {p/1, ≈/2}. Ferner sei X eine Menge von Variablen und x, y ∈ X. Gegeben sind die Struktur A und die Belegung β: • Hinweis: {a, b}∗ ist die Menge aller Worte über dem Alphabet {a, b, c} (inklusive des leeren Wortes ). Worte werden durch Verknüpfung von Buchstaben des Alphabetes gebildet. Beispiele für Worte über dem gegebene Alphabet sind: a, b, c, aa, cb, ac, cb, aaaaaaaacaa. A = ({a, b}∗ , {1A , sA : {a, b}∗ → {a, b}∗ , ∗A : {a, b}∗ × {a, b}∗ → {a, b}∗ }, {pA , ≈A }) mit – 1A = ∈ {a, b}∗ (das leere Wort) – sA (w) = wa ∈ {a, b}∗ (Konkatenation von w und a) – ∗A (w1 , w2 ) = w1 w2 ∈ {a, b}∗ (Konkatenation) – pA ⊆ {a, b}∗ , w ∈ pA genau dann, wenn w mit a endet – ≈A ist die Gleichheit, d.h. ≈A = {(w, w) | w ∈ {a, b}∗ } • β : X → {a, b}∗ , definiert durch β(x) = aa, β(y) = Evaluieren Sie I) A(β)( s(s(x) ∗ 1) ∗ y ), II) A(β)( s(x ∗ y) ≈ s(x) ∗ 1 ), III) A(β)( ∀ x ∀ y (s(x ∗ y) ≈ s(x) ∗ y) ), IV) A(β)( ∃ y p(y ∗ x) ), V) A(β)( ∀ x ∃ y x ≈ s(y) ∧ ¬p(x) → p(y) ). Gehen Sie dabei in klaren und leicht nachvollziehbaren Schritten vor. Aufgabe 9.3 Seien F, G beliebige Formeln der Prädikatenlogik in denen die Variable x vorkommt. Sei H eine beliebige Formel der Prädikatenlogik in der x nicht vorkommt. Beweisen oder widerlegen Sie folgende Aussagen, ohne die Theoreme zur den Äquivalenzen auf den Folien zur Vorlesung zu nutzen: a) (∀ x F ) ∨ (∀ x G) |= ∀ x (F ∨ G) b) ∀ x (F ∧ G) |= (∃ x F ) ∨ (∀ x G) c) ∃ x (F ∨ G) ≡ (∃ x F ) ∨ (∃ x G) d) ∀ x (F ∨ H) ≡ (∀ x F ) ∨ H Aufgabe 9.4 Hinweis: Bei dieser Aufgabe handelt es sich um die letzte reguläre Prolog-Aufgabe. Sie sollten also sicher gehen, dass Sie die Aufgabe entsprechend ernsthaft bearbeiten. Erstellen Sie die Wissensbasis solution09.pl, und definieren Sie in ihr die Prädikate I) istUnsortiert(L), das genau dann wahr ist, wenn die Liste L keine monotone Liste von ganzen Zahlen ist. II) fuegeHinzu(E, L, NL), das genau dann wahr ist, wenn die Listen L und NL monoton steigende Listen von Zahlen sind, und NL durch das Hinzufügen des Elements E zur Liste L erzeugt wurde. Sie müssen die folgenden Arten von Eingaben bei beachten: I) • L ist eine Liste von ganzen Zahlen mit beliebiger Länge, • L ist eine Variable. II) • L ist eine Liste von ganzen Zahlen mit beliebiger Länge; E ist eine ganze Zahl; NL ist eine Liste von ganzen Zahlen mit beliebiger Länge, • L ist eine Liste von ganzen Zahlen mit beliebiger Länge; E ist eine ganze Zahl; NL ist eine Variable, • L ist eine Liste von ganzen Zahlen mit beliebiger Länge; E ist eine Variable; NL ist eine Variable, • L ist eine Variable; E ist eine Variable; NL ist eine Variable. 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, • den Vergleich ‘<’, der der Relation < entspricht • 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].