Logik für Informatiker (WS 08/09)

Werbung
Universität Augsburg
Prof. Dr. W. Vogler
Logik für Informatiker (WS 08/09)
Übungsblatt 9 (Abgabe bis 22.12.2008, 12:00 Uhr)
Aufgabe 1
(6 Punkte)
Auf dem Übungsblatt 3, Aufgabe 2, haben wir folgende Aussage betrachtet: Lucy hasst
”
jeden, der sich nicht selbst hasst.“ Wir haben dort informell argumentiert, dass sich dann
Lucy selbst hassen müsste. Jetzt wollen wir dies formal mit Hilfe des Hilbertkalküls für die
Prädikatenlogik beweisen. Zeigen Sie die folgende Aussage, wobei Sie nur die Axiome, Modus Ponens, das Deduktionstheorem sowie eine (aussagenlogische) Tautologie (Ihrer Wahl)
aus dem Kapitel 2 der Vorlesung verwenden dürfen. Überlegen Sie, welches Axiom in der
informellen Argumentation verwendet wurde.
⊢ (∀x ¬h(x, x) → h(L, x)) → h(L, L)
Aufgabe 2
Zeigen Sie im Hilbertkalkül für die Prädikatenlogik:
(6 Punkte)
⊢ ∀x x = f (x) → f (x) = f (f (x))
Vervollständigen Sie dazu den folgenden Lückentext“. Verwenden Sie dabei nur die Axio”
me, Modus Ponens, das Deduktionstheorem, das Generalisierungstheorem sowie das Lemma
⊢ f (x) = f (x). (Ein Lemma ist hier eine Hilfsaussage, die wir ohne weitere Begründung verwenden.)
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
⊢ ∀y x = y → (f (x) = f (x) → f (x) = f (y))
⊢ f (x) = f (x)
Ax8
Lemma
Ded. (6)
Gen. (7)
⊢ ∀x x = f (x) → f (x) = f (f (x))
Aufgabe 3
(7 Punkte)
In dieser Aufgabe geht es um ungerichtete Graphen ohne Schlingen (eine Schlinge ist eine
Kante von einem Knoten zu sich selbst). Wir definieren: Ein Knoten xi hat Grad k, falls xi
mit genau k (vielen) anderen Knoten (direkt, d.h. über eine Kante) verbunden ist. Ein Pfad
(der Länge n−1) ist eine Folge x1 x2 . . . xn von Knoten, so dass es für i ∈ {1, . . . , n−1} eine
Kante von xi nach xi+1 gibt; er verbindet x1 mit xn . Ein Graph heißt zusammenhängend,
wenn er nicht in Teilgraphen“ zerfällt, die nicht miteinander verbunden sind, wenn also je
”
zwei Knoten durch einen Pfad verbunden sind.
Ein Graph hat einen eulerschen Pfad, wenn es einen Pfad von x1
zu xn (zwei beliebige Knoten) gibt, der jede Kante genau einmal
durchläuft“. Ein bekanntes Beispiel für so einen Graphen ist das
”
Haus vom Nikolaus“ (s. Zeichnung rechts).
”
1
Ein Graph ist eulersch, wenn er einen Pfad von x1 zu x1 (also demselben beliebigen Knoten)
hat. Man kann beweisen, dass ein Graph (ohne Ecken vom Grad 0) genau dann eulersch ist,
wenn er zusammenhängend ist und jeder Knoten einen geraden (d.h. geradzahligen) Grad hat.
In dieser und einer der nächsten Aufgaben wollen wir uns daher mit dem Grad von Ecken
beschäftigen.
Im Beispiel unten hat der Knoten 1 den Grad 2, der Knoten 4 den Grad 1. Dieser Graph ist
nicht zusammenhängend – er wäre es aber, wenn z.B. eine zusätzliche Kante zwischen 1 und
4 wäre. Die Knoten 2 und 3 sind über Pfade der Länge 1, 2 und z.B. auch 8 verbunden.
2
4
1
5
3
Die gegebene Signatur enthält nur das 2-stellige Prädikatssymbol K sowie keine Funktionssymbole. Eine hier betrachtete Interpretation I hat als Grundbereich eine Knotenmenge und
K I (xi , xj ) ist genau dann wahr, wenn zwischen den Knoten xi und xj eine Kante besteht. Jeder Graph läßt sich also durch solch eine Interpretation I darstellen. Der durch I dargestellte
Graph sei mit GI bezeichnet.
Da wir ungerichtete Graphen ohne Schlingen betrachten, soll für alle I gelten:
K I (xi , xj ) ⇔ K I (xj , xi ) für alle xi , xj ∈ DI
und
für alle xi ∈ DI gilt nicht K I (xi , xi ).
Geben Sie Formeln A, B, C und D mit FV (A) = FV (B) = FV (C) = FV (D) = {x} an, für
die folgendes gilt.
1. I, β |= A ⇐⇒ Der Knoten β(x) (im Graphen GI ) hat Grad 0.
2. I, β |= B ⇐⇒ Der Knoten β(x) (im Graphen GI ) hat einen Grad von mindestens 3.
3. I, β |= C ⇐⇒ Der Knoten β(x) (im Graphen GI ) hat Grad 2.
4. I, β |= D ⇐⇒ Der Knoten β(x) (im Graphen GI ) hat einen Grad ungleich 1.
Aufgabe 4
(2 Punkte)
Diese Aufgabe bezieht sich auf Aufgabe 3 von Blatt 7. Werten Sie folgende Formeln aus. Die
Interpretation I ist wie in oben genannter Aufgabe, wobei hier OI (x) := x ist obere Schranke
”
von S“ mit S := {1, 2, 3, 4}. Für die hier definierte Belegungsfunktion β gilt β(y) = 21 und
β(z) = 7.
Gehen Sie bei der Auswertung schrittweise vor! Sie dürfen allerdings pro Auswertungsschritt
parallel (d.h. an unterschiedlichen Stellen gleichzeitig) Auswertungsregeln anwenden. Nicht
erlaubt ist eine Auswertung im lazy“-Stil: Wenn Sie z.B. auf falsch und (. . . )“ stoßen, dürfen
”
”
Sie nicht direkt auf falsch“ schließen, ohne (. . . ) auszuwerten. Werte Sie also alle Teile aus!
”
1. A ≡ O(y) ∧ ∀z O(z) → le(y, z)
2. B ≡ ∀z O(y) ∧ O(z) → le(y, z)
2
Herunterladen