Einführung in die Theoretische Informatik Christina Kohl Alexander Maringele Georg Moser Michael Schaper Institut für Informatik @ UIBK Wintersemester 2016 Zusammenfassung Zusammenfassung der letzten LVA Lemma Jede binäre Operation hat maximal ein neutrales Element und wenn A = hA; ◦, 1i ein Monoid ist, dann ist das Inverse eindeutig Definition (Boolesche Algebra) Eine Algebra B = hB; +, ·, ∼, 0, 1i heißt Boolesche Algebra wenn gilt: 1 hB; +, 0i und hB; ·, 1i sind kommutative Monoide 2 Die Operationen + und · distribuieren übereinander. Es gilt also für alle a, b, c ∈ B: a · (b + c) = (a · b) + (a · c) 3 Für alle a ∈ B gilt a + ∼(a) = 1 a + (b · c) = (a + b) · (a + c) a · ∼(a) = 0 Das Element ∼(a) heißt das Komplement oder die Negation von a GM (IFI) Einführung in die Theoretische Informatik 65/1 Übersicht Inhalte der Lehrveranstaltung Einführung in die Logik Syntax & Semantik der Aussagenlogik, Formales Beweisen, Konjunktive und Disjunktive Normalformen Einführung in die Algebra Boolesche Algebra, Logische Schaltkreise, Universelle Algebra Einführung in die Theorie der Formalen Sprachen Grammatiken und Formale Sprachen, Reguläre Sprachen, Kontextfreie Sprachen Einführung in die Berechenbarkeitstheorie Algorithmisch unlösbare Probleme, Turing Maschinen, Registermaschinen Einführung in die Programmverifikation Prinzipien der Analyse von Programmen, Verifikation nach Hoare GM (IFI) Einführung in die Theoretische Informatik 66/1 Übersicht Inhalte der Lehrveranstaltung Einführung in die Logik Syntax & Semantik der Aussagenlogik, Formales Beweisen, Konjunktive und Disjunktive Normalformen Einführung in die Algebra Boolesche Algebra, Logische Schaltkreise, Universelle Algebra Einführung in die Theorie der Formalen Sprachen Grammatiken und Formale Sprachen, Reguläre Sprachen, Kontextfreie Sprachen Einführung in die Berechenbarkeitstheorie Algorithmisch unlösbare Probleme, Turing Maschinen, Registermaschinen Einführung in die Programmverifikation Prinzipien der Analyse von Programmen, Verifikation nach Hoare GM (IFI) Einführung in die Theoretische Informatik 66/1 Beispiele Boolescher Algebren Beispiele Boolescher Algebren Definition Sei B := {0, 1} und sei Bn das n-fache kartesische Produkt von B: Bn = {(a1 , . . . , an ) | ai ∈ B}; wir betrachten hBn ; +, ·, ∼, (0, . . . , 0), (1, . . . , 1)i 1 (a1 , . . . , an ) + (b1 , . . . , bn ) = (a1 + b1 , . . . , an + bn ) 2 (a1 , . . . , an ) · (b1 , . . . , bn ) = (a1 · b1 , . . . , an · bn ) 3 ∼((a1 , . . . , an )) = (∼(a1 ), . . . , ∼(an )) GM (IFI) Einführung in die Theoretische Informatik 67/1 Beispiele Boolescher Algebren Beispiele Boolescher Algebren Definition Sei B := {0, 1} und sei Bn das n-fache kartesische Produkt von B: Bn = {(a1 , . . . , an ) | ai ∈ B}; wir betrachten hBn ; +, ·, ∼, (0, . . . , 0), (1, . . . , 1)i 1 (a1 , . . . , an ) + (b1 , . . . , bn ) = (a1 + b1 , . . . , an + bn ) 2 (a1 , . . . , an ) · (b1 , . . . , bn ) = (a1 · b1 , . . . , an · bn ) 3 ∼((a1 , . . . , an )) = (∼(a1 ), . . . , ∼(an )) Lemma Die oben definierte Algebra ist eine Boolesche Algebra GM (IFI) Einführung in die Theoretische Informatik 67/1 Beispiele Boolescher Algebren Algebra der Booleschen Funktionen Definition Sei Abb die Menge der Abbildungen von Bn nach Bm wir betrachten hAbb; +, ·, ∼, (0, . . . , 0), (1, . . . , 1)i 1 (0, . . . , 0) : (a1 , . . . , an ) 7→ (0, . . . , 0) 2 (1, . . . , 1) : (a1 , . . . , an ) 7→ (1, . . . , 1) 3 (f + g )(a1 , . . . , an ) = f (a1 , . . . , an ) + g (a1 , . . . , an ) 4 (f · g )(a1 , . . . , an ) = f (a1 , . . . , an ) · g (a1 , . . . , an ) 5 ∼(f )(a1 , . . . , an ) = ∼(f (a1 , . . . , an )) Diese Algebra nennt man Algebra der n-stelligen Booleschen Funktionen GM (IFI) Einführung in die Theoretische Informatik 68/1 Beispiele Boolescher Algebren Algebra der Booleschen Funktionen Definition Sei Abb die Menge der Abbildungen von Bn nach Bm wir betrachten hAbb; +, ·, ∼, (0, . . . , 0), (1, . . . , 1)i 1 (0, . . . , 0) : (a1 , . . . , an ) 7→ (0, . . . , 0) 2 (1, . . . , 1) : (a1 , . . . , an ) 7→ (1, . . . , 1) 3 (f + g )(a1 , . . . , an ) = f (a1 , . . . , an ) + g (a1 , . . . , an ) 4 (f · g )(a1 , . . . , an ) = f (a1 , . . . , an ) · g (a1 , . . . , an ) 5 ∼(f )(a1 , . . . , an ) = ∼(f (a1 , . . . , an )) Diese Algebra nennt man Algebra der n-stelligen Booleschen Funktionen Lemma Die Algebra der Booleschen Funktionen ist eine Boolesche Algebra GM (IFI) Einführung in die Theoretische Informatik 68/1 Beispiele Boolescher Algebren Gesetze Boolescher Algebren Lemma (Dualitätsprinzip) 1 Sei B = hB; +.·, ∼, 0, 1i eine Boolesche Algebra 2 Gelte die Gleichheit E für B Dann gilt eine entsprechende Gleichheit E 0 bei der alle Vorkommnisse von + durch · (und umgekehrt) ersetzt werden sowie 0 und 1 vertauscht GM (IFI) Einführung in die Theoretische Informatik 69/1 Beispiele Boolescher Algebren Gesetze Boolescher Algebren Lemma (Dualitätsprinzip) 1 Sei B = hB; +.·, ∼, 0, 1i eine Boolesche Algebra 2 Gelte die Gleichheit E für B Dann gilt eine entsprechende Gleichheit E 0 bei der alle Vorkommnisse von + durch · (und umgekehrt) ersetzt werden sowie 0 und 1 vertauscht In der Folge sei B = hB; +.·, ∼, 0, 1i eine Boolsche Algebra GM (IFI) Einführung in die Theoretische Informatik 69/1 Beispiele Boolescher Algebren Gesetze Boolescher Algebren Lemma (Dualitätsprinzip) 1 Sei B = hB; +.·, ∼, 0, 1i eine Boolesche Algebra 2 Gelte die Gleichheit E für B Dann gilt eine entsprechende Gleichheit E 0 bei der alle Vorkommnisse von + durch · (und umgekehrt) ersetzt werden sowie 0 und 1 vertauscht In der Folge sei B = hB; +.·, ∼, 0, 1i eine Boolsche Algebra Lemma Für alle a ∈ B gelten die Idempotenzgesetze: a·a=a a+a=a und die folgenden Gesetze für 0 und 1: 0·a=0 GM (IFI) 1+a=1 Einführung in die Theoretische Informatik 69/1 Beispiele Boolescher Algebren Lemma Für alle a, b ∈ B gelten die Absorptionsgesetze: a + ab = a a + ∼(a) · b = a + b GM (IFI) a(a + b) = a a(∼(a) + b) = ab Einführung in die Theoretische Informatik 70/1 Beispiele Boolescher Algebren Lemma Für alle a, b ∈ B gelten die Absorptionsgesetze: a + ab = a a + ∼(a) · b = a + b a(a + b) = a a(∼(a) + b) = ab Lemma À Für alle a, b ∈ B gilt die Eindeutigkeit des Komplements: Wenn a + b = 1 und ab = 0, dann b = ∼(a) GM (IFI) Einführung in die Theoretische Informatik 70/1 Beispiele Boolescher Algebren Lemma Für alle a, b ∈ B gelten die Absorptionsgesetze: a + ab = a a + ∼(a) · b = a + b a(a + b) = a a(∼(a) + b) = ab Lemma À Für alle a, b ∈ B gilt die Eindeutigkeit des Komplements: Wenn a + b = 1 und ab = 0, dann b = ∼(a) Beweis. Gelte a + b = 1 und ab = 0 b = b1 = b(a + ∼(a)) = ba + b · ∼(a) = 0 + b · ∼(a) da ab = 0 = a · ∼(a) + b · ∼(a) = (a + b) · ∼(a) = 1 · ∼(a) da a + b = 1 = ∼(a) GM (IFI) Einführung in die Theoretische Informatik 70/1 Beispiele Boolescher Algebren Lemma Für alle a ∈ B gilt das Involutionsgesetz: ∼(∼(a)) = a GM (IFI) Einführung in die Theoretische Informatik 71/1 Beispiele Boolescher Algebren Lemma Für alle a ∈ B gilt das Involutionsgesetz: ∼(∼(a)) = a Beweis. Nach Definition einer Booleschen Algebra und Kommutativität von + beziehungsweise · gilt: 1 ∼(a) + a = 1 2 ∼(a) · a = 0 Mit Lemma À folgt, dass a das Komplement von ∼(a) ist GM (IFI) Einführung in die Theoretische Informatik 71/1 Beispiele Boolescher Algebren Lemma Für alle a ∈ B gilt das Involutionsgesetz: ∼(∼(a)) = a Beweis. Nach Definition einer Booleschen Algebra und Kommutativität von + beziehungsweise · gilt: 1 ∼(a) + a = 1 2 ∼(a) · a = 0 Mit Lemma À folgt, dass a das Komplement von ∼(a) ist Lemma Für alle a, b ∈ B gelten die Gesetze von de Morgan: ∼(a + b) = ∼(a) · ∼(b) GM (IFI) ∼(a · b) = ∼(a) + ∼(b) Einführung in die Theoretische Informatik 71/1 Beispiele Boolescher Algebren Erstes Gesetz von de Morgan. • Wir zeigen (a + b) + ∼(a) · ∼(b) = 1: (a + b) + ∼(a) · ∼(b) = (a + b + ∼(a))(a + b + ∼(b)) = (a + ∼(a) + b)(a + b + ∼(b)) = (1 + b)(a + 1) =1·1=1 GM (IFI) Einführung in die Theoretische Informatik 72/1 Beispiele Boolescher Algebren Erstes Gesetz von de Morgan. • Wir zeigen (a + b) + ∼(a) · ∼(b) = 1: (a + b) + ∼(a) · ∼(b) = (a + b + ∼(a))(a + b + ∼(b)) = (a + ∼(a) + b)(a + b + ∼(b)) = (1 + b)(a + 1) =1·1=1 • Wir zeigen (a + b) · ∼(a) · ∼(b) = 0: (a + b) · ∼(a) · ∼(b) = a · ∼(a) · ∼(b) + b · ∼(a) · ∼(b) = a · ∼(a) · ∼(b) + ∼(a) · b · ∼(b) = 0 · ∼(b) + ∼(a) · 0 =0+0=0 GM (IFI) Einführung in die Theoretische Informatik 72/1 Beispiele Boolescher Algebren Erstes Gesetz von de Morgan. • Wir zeigen (a + b) + ∼(a) · ∼(b) = 1: (a + b) + ∼(a) · ∼(b) = (a + b + ∼(a))(a + b + ∼(b)) = (a + ∼(a) + b)(a + b + ∼(b)) = (1 + b)(a + 1) =1·1=1 • Wir zeigen (a + b) · ∼(a) · ∼(b) = 0: (a + b) · ∼(a) · ∼(b) = a · ∼(a) · ∼(b) + b · ∼(a) · ∼(b) = a · ∼(a) · ∼(b) + ∼(a) · b · ∼(b) = 0 · ∼(b) + ∼(a) · 0 =0+0=0 • Die Voraussetzungen von Lemma À sind gezeigt GM (IFI) Einführung in die Theoretische Informatik 72/1 Beispiele Boolescher Algebren Erstes Gesetz von de Morgan. • Wir zeigen (a + b) + ∼(a) · ∼(b) = 1: (a + b) + ∼(a) · ∼(b) = (a + b + ∼(a))(a + b + ∼(b)) = (a + ∼(a) + b)(a + b + ∼(b)) = (1 + b)(a + 1) =1·1=1 • Wir zeigen (a + b) · ∼(a) · ∼(b) = 0: (a + b) · ∼(a) · ∼(b) = a · ∼(a) · ∼(b) + b · ∼(a) · ∼(b) = a · ∼(a) · ∼(b) + ∼(a) · b · ∼(b) = 0 · ∼(b) + ∼(a) · 0 =0+0=0 • Die Voraussetzungen von Lemma À sind gezeigt • Somit ist ∼(a) · ∼(b) das Komplement von a + b GM (IFI) Einführung in die Theoretische Informatik 72/1 Beispiele Boolescher Algebren Sei B = {0, 1} und sei Bn das n-fache kartesische Produkt von B GM (IFI) Einführung in die Theoretische Informatik 73/1 Beispiele Boolescher Algebren Sei B = {0, 1} und sei Bn das n-fache kartesische Produkt von B Definition (Boolesche Funktion) 1 Sei F ein Boolescher Ausdruck in den Variablen x1 , . . . , xn 2 F (s1 , . . . , sn ) die Instanz von F 3 Wir definieren die Funktion f : Bn → B wie folgt: f (s1 , . . . , sn ) := F (s1 , . . . , sn ) . Dann heißt f die Boolesche Funktion zum Ausdruck F GM (IFI) Einführung in die Theoretische Informatik 73/1 Beispiele Boolescher Algebren Sei B = {0, 1} und sei Bn das n-fache kartesische Produkt von B Definition (Boolesche Funktion) 1 Sei F ein Boolescher Ausdruck in den Variablen x1 , . . . , xn 2 F (s1 , . . . , sn ) die Instanz von F 3 Wir definieren die Funktion f : Bn → B wie folgt: f (s1 , . . . , sn ) := F (s1 , . . . , sn ) . Dann heißt f die Boolesche Funktion zum Ausdruck F Beispiel (Boolsche Algebra Frm = hFrm; ∨, ∧, ¬, False, Truei) Sei F = x1 ∧ ¬(x2 ∨ x1 ), dann ist f : B2 → Bin die Boolsche Funktion zu F Sei G = x1 ∧x2 ∧¬x2 , dann ist g : B2 → Bin die Boolsche Funktion zu G GM (IFI) s1 s2 f (s1 , s2 ) g (s1 , s2 ) 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 Einführung in die Theoretische Informatik 73/1 Beispiele Boolescher Algebren Definition 1 Sei f : Bn → B eine Boolesche Funktion 2 Sei F ein Boolescher Ausdruck, dessen Boolesche Funktion gleich f Dann nennen wir F den Booleschen Ausdruck von f GM (IFI) Einführung in die Theoretische Informatik 74/1 Beispiele Boolescher Algebren Definition 1 Sei f : Bn → B eine Boolesche Funktion 2 Sei F ein Boolescher Ausdruck, dessen Boolesche Funktion gleich f Dann nennen wir F den Booleschen Ausdruck von f Satz (Darstellungssatz von Stone) Jede Boolesche Algebra ist isomorph zu einer Mengenalgebra GM (IFI) Einführung in die Theoretische Informatik 74/1 Beispiele Boolescher Algebren Definition 1 Sei f : Bn → B eine Boolesche Funktion 2 Sei F ein Boolescher Ausdruck, dessen Boolesche Funktion gleich f Dann nennen wir F den Booleschen Ausdruck von f Satz (Darstellungssatz von Stone) Jede Boolesche Algebra ist isomorph zu einer Mengenalgebra Satz 1 Seien A, B Boolesche Ausdrücke 2 Seien f , g ihre Booleschen Funktionen Dann gilt A ≈ B gdw. f = g in der Algebra der Booleschen Funktionen GM (IFI) Einführung in die Theoretische Informatik 74/1