Modellierung – WS 2014/2015 Präsenzaufgaben

Werbung
Paderborn, 28. November 2014
Universität Paderborn
Institut für Informatik
H. Kleine Büning,
J. Blömer
Modellierung – WS 2014/2015
Präsenzaufgaben
Übungsblatt 7
Aufgabe 1: Widerlegen, prädikatenlogische Resolution
Geben Sie zu folgenden Formeln Widerlegungen mit Hilfe der prädikatenlogischen Resolution an. Im Folgenden seien a, b Konstanten.
(a) α = {T (z), ¬T (x) ∨ ¬Q(x), ¬P (x) ∨ Q(y) ∨ Q(x) ∨ S(f (x)), P (w), ¬P (x) ∨ Q(x) ∨ R(x, f (x)),
¬R(a, z) ∨ T (z), ¬T (y) ∨ ¬S(y)}
(b) α = {¬P (x) ∨ ¬P (f (a)) ∨ Q(y), P (y), ¬P (g(b, x)) ∨ ¬Q(b)}
(c) α = {P (w, x) ∨ P (y, z), ¬P (w1 , x1 ) ∨ ¬P (y1 , z1 )}
Aufgabe 2: Prädikatenlogische Resolution
Gegeben seien folgende Formeln:
α = ∀x∀y ((B(x) ∧ ¬R(y, y)) → R(x, y))
β = ∀x∀y ((B(x) ∧ R(y, y)) → ¬R(x, y))
Zeigen Sie mittels Resolution, dass hieraus folgt:
γ = ¬(∃x B(x)).
Aufgabe 3: Formalisieren, Beweisen, Resolution
Seien eine beliebige zweistellige Relation R und die folgenden Aussagen gegeben:
• R ist irreflexiv und transitiv.
• R ist asymmetrisch.
(a) Zeigen Sie, dass die zweite Aussage eine Folgerung der ersten Aussage ist. Strukturieren Sie Ihren
Beweis und geben Sie auch die verwendete Beweisform an.
(b) Formalisieren Sie beide Aussage mittels prädikatenlogischer Formeln.
(c) Zeigen Sie dann mittels Resolution, dass die zweite Aussage aus der ersten Aussage folgt.
1
2014
Aufgabe 4: verschiedene Notationen von Termen
Gegeben seien die in Infixform dargestellten Terme:
(a) a + ((x ∗ (x + 5)) − (y + z))
(b) a + ((y ∗ (x + z)) − (x + 3))
(c) ((a ∗ b) − (c − d)) + ((5 + x) ∗ (y − c))
Bestimmen Sie zunächst die Baumdarstellung und geben Sie dann Präfixform und Postfixform an.
Aufgabe 5: Abstrakte Algebra
Die Datenstruktur Schlange verwaltet Zahlen in der Reihenfolge ihres Eintreffens. Operationen auf einer
Schlange erlauben es, Zahlen hinten anzufügen (enqueue) oder vorne die am längsten wartende Zahl zu entnehmen (dequeue). Zusätzlich gibt es Operationen, um eine neue leere Schlange zu erzeugen (createQueue),
die erste Zahl zurückzugeben (front) sowie eine Methode, die anzeigt, ob die Schlange leer ist (empty).
Die folgende abstrakte Algebra beschreibt eine Schlange (τ, Σ, Q) mit der Signatur Σ = (S, F ):
S = { Queue, Nat0, BOOL }
F = { createQueue :
enqueue :
Queue × Nat0
dequeue :
Queue
f ront :
Queue
empty :
Queue
→ Queue,
→ Queue,
→ Queue,
→ Nat0,
→ BOOL }
(F1 )
(F2 )
(F3 )
(F4 )
(F5 )
Die Sorte Queue stellt eine Schlange dar; die Sorte Nat0 beschreibt Elemente der Schlange und stellt somit
Zahlen dar. Für die Sorte BOOL sind die Konstanten true und false definiert. createQueue ist eine 0-stellige
Operation und deshalb eine Konstante.
Für die Menge der Axiome Q seien x, y Terme der Sorte Nat0 und q ein Term der Sorte Queue.
Q={
Q1
Q2
Q3
Q4
Q5
Q6
:
:
:
:
:
:
dequeue(enqueue(createQueue, x))
dequeue(enqueue(enqueue(q, y), x))
f ront(enqueue(createQueue, x))
f ront(enqueue(q, x))
empty(createQueue)
empty(enqueue(createQueue, x))
→ createQueue,
→ enqueue(dequeue(enqueue(q, y)), x),
→ x,
→ f ront(q),
→ true,
→ f alse
}
Im Folgenden seien x, y Variable der Sorte Nat0.
(a) Prüfen Sie, ob die folgenden Terme entsprechend der Signatur korrekt sind. Zeichnen Sie die Terme
als Baum und notieren Sie an jedem Blatt und an jedem inneren Knoten die entsprechende Sorte.
Kennzeichnen Sie die Stellen, an denen die Terme nicht korrekt gebildet wurden.
2
2014
(a1) f ront(enqueue(createQueue, f ront(enqueue(createQueue, x))))
(a2) empty(dequeue(enqueue(createQueue, x), y))
(a3) enqueue(dequeue(createQueue), f ront(enqueue(createQueue, x))
(a4) enqueue(enqueue(createQueue, x), y)
(a5) f ront(dequeue(enqueue(createQueue, x)))
(a6) f ront(createQueue, x)
(a7) enqueue(a, createQueue)
(b) Formen Sie die folgenden Terme mit Hilfe der Axiome so um, dass Sie als Ergebnis eine einzelne
Variable oder Konstante erhalten. Geben Sie in jedem Schritt das verwendete Axiom an.
(b1) empty(dequeue(enqueue(createQueue, y)))
(b2) empty(enqueue(createQueue, f ront(enqueue(enqueue(createQueue, y), x))))
(b3) f ront(enqueue(dequeue(enqueue(createQueue, y)), x))
(b4) dequeue(enqueue(createQueue, z))
(b5) empty(enqueue(createQueue, y))
(b6) f ront(dequeue(enqueue(enqueue(createQueue, z), x)))
(b7) f ront(enqueue(enqueue(createQueue, x), z))
(c) Erweitern Sie die Algebra um eine zusätzliche Operation greatest, die die größte Zahlen der Schlange
zurückgibt. Wenn die Schlange beispielsweise die Zahlen (2,3,8,5,7) enthält, soll greatest für diese
Schlange 8 ausgeben.
• Nehmen Sie an, dass für die Sorte Nat0 die Operation max : N at0 × N at0 → N at0 gegeben
ist.
• max(x, y) gibt die größte der Zahlen x und y zurück.
• Sie können davon ausgehen, dass keine Zahl mehrfach in der Schlange vorhanden ist und dass
die kleinste Zahl in der Schlange größer als 0 ist.
• Für die Sorte Nat0 ist eine Konstante zero definiert; diese soll dem Wert „0“ entsprechen.
Geben Sie die nötigen Ergänzungen der Signatur sowie der Axiome an.
3
2014
Herunterladen