MafI I: Logik & Diskrete Mathematik
MafI I: Logik & Diskrete Mathematik
MafI I: Logik & Diskrete Mathematik
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Teilösung zum 2. Aufgabenblatt vom Donnerstag, den 22. Oktober 2009 zur Vorlesung<br />
<strong>MafI</strong> I: <strong>Logik</strong> & <strong>Diskrete</strong> <strong>Mathematik</strong><br />
(Autor: F. Hoffmann)<br />
1. Assoziativität Wir definieren einen Booleschen Operator ⊙ durch<br />
1 ⊙ 1 = 1, 1 ⊙ 0 = 0, 0 ⊙ 1 = 0, 0 ⊙ 0 = 1<br />
Ist dies ein assoziativer Operator? Begründung!<br />
2. DNF,KNF I Betrachten Sie den Booleschen Ausdruck:<br />
(x ∧ ¬y ∨ ¬z) ⇒ (x ∧ y)<br />
Geben Sie zunächst die vollständige Klammerung für diesen Ausdruck an. Bilden Sie<br />
dazu die kanonische DNF und die kanonische KNF.<br />
Lösung: Wegen der in der Reihenfolge ¬, ∧, ∨, ⇒ abnehmenden Bindungsstärke ergibt<br />
sich als vollständige Klammerung<br />
(((x ∧ (¬y)) ∨ (¬z)) ⇒ (x ∧ y))<br />
Wir belegen die Variablen x, y, z mit Booleschen Werten und interpretieren den Term.<br />
Es ergibt sich folgende Wertetabelle einer 3-stelligen Booleschen Funktion f, wobei<br />
zwecks Übersichtlichkeit einige Zwischenschritte aufgeführt sind:<br />
x y z α = x ∧ ¬y β = α ∨ ¬z x ∧ y β ⇒ x ∧ y<br />
0 0 0 0 1 0 0<br />
0 0 1 0 0 0 1<br />
0 1 0 0 1 0 0<br />
0 1 1 0 0 0 1<br />
1 0 0 1 1 0 0<br />
1 0 1 1 1 0 0<br />
1 1 0 0 1 1 1<br />
1 1 1 0 0 1 1<br />
Für die kanonische DNF ergibt sich:<br />
dnf(f) = (¬x ∧ ¬y ∧ z) ∨ (¬x ∧ y ∧ z) ∨ (x ∧ y ∧ ¬z) ∨ (x ∧ y ∧ z)<br />
Für die kanonische KNF erhalten wir:<br />
knf(f) = (x ∨ y ∨ z) ∧ (x ∨ ¬y ∨ z) ∧ (¬x ∨ y ∨ z) ∧ (¬x ∨ y ∨ ¬z)
3. DNF,KNF II<br />
Finden Sie zu den folgenden Formeln semantisch äquivalente Terme in DNF bzw. KNF.<br />
(a) (p ⇒ (q ∨ r)) ∧ ¬q ∧ ¬r<br />
(b) ¬(p ⇔ q) ⇔ r<br />
(c) ¬r ⇒ (((p ∨ q) ⇒ r) ⇒ ¬q)<br />
Lösung: Wir formen den Term semantisch äquivalent um:<br />
¬r ⇒ (((p ∨ q) ⇒ r) ⇒ ¬q) ≡ r ∨ ¬(¬(p ∨ q) ∨ r) ∨ ¬q<br />
≡ r ∨ ((p ∨ q) ∧ ¬r) ∨ ¬q ≡ (r ∨ p ∨ q) ∧ (r ∨ ¬r) ∨ ¬q ≡ r ∨ p ∨ q ∨ ¬q<br />
Die erhaltene Formel ist sowohl in DNF wie auch in KNF.<br />
4. Vollständige Signaturen<br />
(a) Schreiben Sie a ⇒ (b ∧ c) unter ausschließlicher Verwendung des NOR-Operators.<br />
(Sie können ↓ als NOR–Operatorzeichen benutzen.)<br />
(b) Zeigen Sie, dass weder {∧}, {∨} noch {⇒} funktional vollständig sind.<br />
(c) Zeigen Sie, dass die Implikation ⇒ zusammen mit dem Term false funktional<br />
vollständig ist.<br />
Lösung: Wir wissen, dass die Signatur {¬, ∨} funktional vollständig ist. Weiterhin<br />
gelten die folgenden semantischen Äquivalenzen:<br />
¬x ≡ (false ⇒ x), x ∨ y ≡ (¬x ⇒ y) ≡ ((false ⇒ x) ⇒ y)<br />
Auf dieser Grundlage kann man jeden Term über der Signatur {¬, ∨} durch die<br />
neue Signatur semantisch äquivalent darstellen.<br />
(d) (Schwerer! ) Zeigen Sie, dass {⊕} keine vollständige Signatur ist.<br />
Tipp: Zeigen Sie zunächst, dass ⊕ assoziativ ist. Dann zeigen Sie, dass man zum<br />
Beispiel die konstante Funtion 1 nicht ausdrücken kann.<br />
Lösung: Es ist leicht mittels einer Wertetabelle gezeigt, dass ⊕ assoziativ ist, d.h.<br />
es gilt<br />
x ⊕ (y ⊕ z) ≡ (x ⊕ y) ⊕ z:<br />
x y z x ⊕ y y ⊕ z x ⊕ (y ⊕ z) (x ⊕ y) ⊕ z<br />
0 0 0 0 0 0 0<br />
0 0 1 0 1 1 1<br />
0 1 0 1 1 1 1<br />
1 0 0 1 0 1 1<br />
0 1 1 1 0 0 0<br />
1 0 1 1 1 0 0<br />
1 1 0 0 1 0 0<br />
1 1 1 0 0 1 1<br />
Wir können also auch von links klammern, egal wieviele Variablen durch ⊕ verknüpft<br />
sind.<br />
Angenommen wir haben eine Term über einer Variablenmenge, der die konstante<br />
Funktion 1 repräsentiert. Sei m die Anzahl der Vorkommen von Variablen im
Term. m kann gerade oder ungerade sein. Wenn wir jede vorkommende Variable<br />
mit dem Booleschen Wert b interpretieren, so ergibt sich:<br />
(. . . (b ⊕ b) ⊕ b) . . .) ⊕ b = 0 (1)<br />
} {{ }<br />
2k−mal<br />
(b ⊕ . . . ⊕ b)<br />
} {{ }<br />
2k−mal<br />
⊕ b = b (2)<br />
Wir sehen, dass -egal wie der Term aussieht- bei der Belegung aller Variablen mit<br />
0, der Term zu 0 ausgewertet wird. Widerspruch. Also ist die Signatur {⊕} nicht<br />
funktional vollständig.<br />
Hinweis: Man könnte jetzt vermuten, dass {⊕, true} funktional vollständig ist, da<br />
man die konstante Funktion 1 nun realisieren kann. Dem ist jedoch nicht so! Wer<br />
will, kann sich am Beweis versuchen. Die Kommutativität des ⊕–Operators ist<br />
dabei sehr hilfreich.