Logik (Teschl/Teschl 1.1 und 1.3) Eine Aussage ist ein Satz, von dem man eindeutig entscheiden kann, ob er wahr (true, = 1) oder falsch (false, = 0) ist. Beispiele a: 1 + 1 = 2 b: Darmstadt liegt in Bayern. c: Der 8. April 2013 ist ein Dienstag. d: Das Glas ist halb voll. Negation 1 ¬ ¬ ¬ ¬ = ¬1 = 0, a: 1 0 = ¬0 = 1 + 1 6= 2 b: Darmstadt liegt nicht in Bayern. c: Der 8. April 2013 ist kein Dienstag. d: Das Glas ist nicht halb voll. logik.pdf, Seite 1 Eine Aussageform a(x ): x >1 besteht aus Variable x und Prädikat > 1. Der Wahrheitswert hängt vom Wert der Variable ab. AllAussagen und ExistenzAussagen ∀x : a(x ) Für alle x gilt die Aussage a(x ), ∃x : a(x ) Es gibt ein x , für das a(x ) gilt. Beispiel ∀x ∈ Z : x 2 ≥ 0, ∃x ∈ Z : x 2 = 4. logik.pdf, Seite 2 Logische Funktionen (Verknüpfung von Aussagen) ¬a = a kehrt und 1 = 0, Die Negation um: 0 =1 d. h. wenn a = 0, so ist a den Wahrheitswert einer Aussage a =1 und umgekehrt. Zweistellige logische Funktionen verknüpfen zwei Wahrheitswerte. Die wichtigsten sind Konjunktion (logisches und, a ∧b ist genau dann wahr, wenn a und b wahr sind, d. h. 0 ∧0=0∧1=1∧0=0 Disjunktion (logisches oder, a ∨b ∧, ∗), und 1 ∧ 1 = 1. ∨, +), ist genau dann wahr, wenn mindestens eine der beiden Aussagen a oder b wahr ist, d. h. 0 ∨0=0 und 0 ∨ 1 = 1 ∨ 0 = 1 ∨ 1 = 1. logik.pdf, Seite 3 Weitere zweistellige logische Verknüpfungen Exklusives oder (xor, a ⊕b ⊕), ist genau dann wahr, wenn eine der beiden Aussagen a oder b wahr und die andere falsch ist, d. h. 0 ⊕0=1⊕1=0 und 0 ⊕ 1 = 1 ⊕ 0 = 1. Subjunktion (→, Ist a = 0, so ist ⇒, wenn-dann) a → b immer wahr, ist a = 1, so ist a →b wahr, wenn b wahr ist, d. h. 0 →0=0→1=1→1=1 Äquivalenz (↔, a ↔b ⇔, und 1 → 0 = 0. genau-dann-wenn) ist genau dann wahr, wenn a und b den selben Wahrheitswert haben, d. h. 0 ↔0=1↔1=1 und 0 ↔ 1 = 1 ↔ 0 = 0. logik.pdf, Seite 4 Wertetabellen Für eine zweistellige logische Funktion gibt es 4 mögliche Eingaben, zu denen man die Werte in einer Tabelle auisten kann. Durch eine solche Wertetabelle (Wahrheitstafel) ist die logische Funktion vollständig beschrieben. a ∧b a ∨b a ⊕b a →b a ↔b a b 0 0 0 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 logik.pdf, Seite 5 Logische Äquivalenz 4 Es gibt insgesamt 2 = 16 unterschiedliche zweistellige logische Funktionen. Diese sind jeweils auf unterschiedliche Weise darstellbar. Vergleicht man z. B. die beiden logischen Funktionen a und a ∨ b, →b so stellt man mit Hilfe einer Wertetabelle fest, dass sie für alle Eingaben von a und b den selben Wahrheitswert haben: a →b a ∨b a a b 0 1 0 1 1 0 1 1 1 1 1 0 0 0 0 1 0 1 1 1 Man sagt, die beiden Funktionen sind logisch äquivalent, Notation (a → b) ⇔ (a ∨ b) bzw. (a → b) = (a ∨ b). logik.pdf, Seite 6 Verneinung von All- und Existenzaussagen ∀x : a(x ) ⇔ ∃x : a(x ): Die Aussage a(x ) ist nicht für alle x wahr bedeutet, dass es (mindestens) ein x gibt, für das a(x ) falsch ist. ∃x : a(x ) ⇔ ∀x : a(x ): Es gibt kein x , für das a(x ) wahr ist bedeutet, dass a(x ) für alle x falsch ist. Beispiel h i 2 ¬ ∀n ∈ N : 2 ≥ n ⇔ ∃n ∈ N : 2 < n2 , h i 2 ¬ ∃x ∈ Q : x = 2 ⇔ ∀x ∈ Q : x 2 6= 2, n n logik.pdf, Seite 7 Indirekter Beweis Die logische Äquivalenz (a → b ) ⇔ (b → a ) ist Grundlage einer mathematischen Beweismethode, dem indirekten Beweis. Um zu beweisen, dass B aus A folgt, zeigt man dass wenn B falsch ist auch A falsch sein muss. Beispielsatz Ist n ≥3 Primzahl, so ist n ungerade. Beweis: Man zeigt die logische äquivalente Aussage: Ist n ≥3 gerade, so ist n keine Primzahl. n gerade ⇒n durch 2 teilbar ⇒n keine Primzahl. Zur Notation: das Zeichen ⇒ steht für die logische Implikation: Wenn die linke Seite wahr ist, dann ist auch die rechte Seite wahr. logik.pdf, Seite 8 Rechenregeln für Logische Operationen (Regeln der Booleschen Algebra) ∧ b ⇔ b ∧ a, a∨b ⇔ b∨a Kommutativität (a ∧ b ) ∧ c ⇔ a ∧ (b ∧ c ), (a ∨ b) ∨ c ⇔ a ∨ (b ∨ c ) Assoziativität ∧ (b ∨ c ) ⇔ (a ∧ b) ∨ (a ∧ c ), a ∨ (b ∧ c ) ⇔ (a ∨ b ) ∧ (a ∨ c ), Distributivität a a ∧ b ⇔ a ∨ b, a∨b ⇔ a∧b a a ⇔a deMorgan'sche Regeln doppelte Verneinung Gleiche Regeln wie bei Mengenoperationen! logik.pdf, Seite 9 Vereinfachen von logischen Ausdrücken Beispiel: (a ∧ b) ∧ a ⇔ (a ∨ b) ∧ a ⇔ (a ∧ a) ∨ (b ∧ a) ⇔ a ∨ (b ∧ a) ⇔ a Disjunktive Normalform (DNF) Logische Funktionen lassen sich auf wenige Grundfunktionen zurückführen. So lässt sich jede zweistellige logische Funktion durch die Operationen Negation, Disjunktion (∨) und Konjunktion (∧) darstellen: (x1 ∧ y1 ) ∨ (x2 ∧ y2 ) ∨ ... ∨ (x ∧ y ) n n Diese Darstellung heiÿt disjunktive Normalform. Dabei stehen die xi für a oder a und die yi für b oder b. logik.pdf, Seite 10 DNF am Beispiel Subjunktion a →b a b 0 0 1 0 1 1 1 0 0 1 1 1 Die DNF hat dann die Form (a → b) = (a ∧ b) ∨ (a ∧ b) ∨ (a ∧ b). Jeder Klammerausdruck steht dabei für eine Zeile (d. h. für eine Kombination von Wahrheitswerten von a, b als Eingabe), für die der die betrachtete Funktion a →b den Wahrheitswert 1 hat. logik.pdf, Seite 11 nstellige logische Funktionen In gleicher Weise lassen sich auch nstellige logische Funktionen mit n Funktion hat 2 n >2 betrachten. Eine nstellige logische mögliche Eingaben, deren zugehörige Wahrheitswerte wieder in einer Tabelle aufgelistet werden können, d. h. die Wahrheitstafel einer dreistelligen logischen Funktion hat beispielsweise 8 Zeilen, die einer vierstelligen Funktion 16 Zeilen. Beispiel f (a, b , c ) = (a ∧ b ) → c Z. B. ist f (1, 1, 1) ist eine dreistellige logische Funktion. = (1 ∧ 0) → 1 = 0 → 1 = 1. logik.pdf, Seite 12 Beispiel: DNF von f (a, b, c ) = (a ∨ c ) → (b ∧ c ) Man erstellt zunächst eine Wertetabelle: a ∨c b ∧c (a ∨ c ) → (b ∧ c ) a b c 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 Die disjunktive Normalform hat dann die Form f (a, b , c ) = (a ∧ b ∧ c ) ∨ (a ∧ b ∧ c ) ∨ (a ∧ b ∧ c ) logik.pdf, Seite 13 Vereinfachung des Ausdrucks im Beispiel Unter Benutzung der Rechenregeln kann c ausgeklammert werden: = (a ∧ b ∧ c ) ∨ (a ∧ b ∧ c ) ∨ (a ∧ b ∧ c ) = (a ∧ b) ∨ (a ∧ b) ∨ (a ∧ b) ∧ c f (a, b , c ) Der Ausdruck innerhalb der groÿen Klammer entspricht a ∨ b. Damit erhält man f (a, b , c ) = (a ∨ b ) ∧ c . logik.pdf, Seite 14 Konjunktive Normalform (KNF) Analog zur DNF lässt sich jede logische Funktion als Konjuktion von Disjunktionen darstellen, d. h. innerhalb der Klammern stehen OderVerknüpfungen und zwischen den Klammerausdrücken UndVerknüpfungen. Eine Möglichkeit, die KNF zu erhalten, ist zunächst die DNF von f zu bestimmen, zum Beispiel ist für f (a, b ) =a⊕b = (a ∧ b) ∨ (a ∧ b). f Die KNF von f erhält man hieraus durch Komplementbildung und Anwendung der deMorganRegeln: f = (a ∧ b) ∨ (a ∧ b) = (a ∧ b) ∧ (a ∧ b)= (a ∨ b) ∧ (a ∨ b) logik.pdf, Seite 15 Im Beispiel f (a, b, c ) = (a ∨ c ) → (b ∧ c ) erhält man aus der Wertetabelle (siehe vorheriges Beispiel) die DNF von f f = (a ∧ b ∧ c ) ∨ (a ∧ b ∧ c ) ∨ (a ∧ b ∧ c ) ∨ (a ∧ b ∧ c ) ∨ (a ∧ b ∧ c ) Es folgt f = (a ∧ b ∧ c )∧(a ∧ b ∧ c )∧(a ∧ b ∧ c )∧(a ∧ b ∧ c )∧(a ∧ b ∧ c ) = (a ∨ b ∨ c ) ∧ (a ∨ b ∨ c ) ∧ (a ∨ b ∨ c ) ∧ (a ∨ b ∨ c ) ∧ (a ∨ b ∨ c ) Bemerkung In der KNF entspricht jeder Klammerausdruck einer Tabellenzeile, in der f =0 wird. logik.pdf, Seite 16 NANDVerknüpfung (NichtUnd) a NAND b =a∧b Jede logische Funktion kann als Kombination von NAND-Verknüpfungen ausgedrückt werden! Begründung Zunächst kann jede logische Funktion in der DNF als Kombinationen von Negationen, Konjunktionen und Disjunktionen dargestellt werden. Also reicht es, diese Verknüpfungen durch NAND darzustellen: a =a a ∧b =a NAND b = (a NAND b ) NAND (a NAND b ), a ∨b =a NAND b = (a NAND a) NAND (b NAND b ) NAND a, d.h. Negation durch NAND ausgedrückt, Analog: Darstellung durch NOR (Nicht-Oder) möglich. logik.pdf, Seite 17 Addition von Dualzahlen als logische Funktion Man betrachtet zunächst einen Halbaddierer zur Addition einstelliger Dualzahlen a, b: a + b = (os )2 s = s (a, b) = a ⊕ b Summe (sum), rechtes Bit, o = o (a, b) = a ∧ b Übertrag (overow), linkes Bit mit Mögliche Hardwareschaltung a b o s 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 logik.pdf, Seite 18 Volladdierer Berechnet (s n +1 sn ...s0 )2 = (a ...a0 )2 + (b ...b0 )2 . n n Die i te Stufe des Volladdierers wird zusammengesetzt aus Halbaddierern (HA) und OderBausteinen: logik.pdf, Seite 19