Formale Grundlagen der Informatik Mengen Definition (Intuitive Mengenlehre) Eine Menge ist die Zusammenfassung von Elementen unserer Anschauung zu einem wohldefinierten Ganzen. (Georg Cantor) Notation 1. Aufzählung aller Elemente: { 1 , { 2 } , { 3 , 4 } , { 5 } } 1. Beschreibung der Eigenschaften der Elemente: { x | x mod 2 = 0 } Informell wird auch geschrieben: { 2, 4, 6, 8, … } (Nicht-) Elemente einer Menge {3,4}{1,{2},{3,4},{5}} 3{1,{2},{3,4},{5}} Grundprinzipien Axiom der Extensionalität: Zwei Mengen A und B sind genau dann gleich, wenn sie die gleichen Elemente enthalten. A = B ( x : x A x B ) Beispiel: { 1 , 2 , 3 } = { n | n n < 4 } Axiom der Komprehension: Für jede Eigenschaft können wir eine Menge bilden, die genau die Elemente enthält, die diese Eigenschaft haben. Mengen, Relationen, Funktionen 1 Formale Grundlagen der Informatik Eigenschaften Mengenzugehörigkeit x : ( x { a1, … an } x = a1 … x = an ) x : ( x { y | P(y) } P(x) ) Teilmengen Die Menge T heisst eine (unechte) Teilmenge der Menge A, wenn jedes Element, das in der Teilmenge T liegt, auch in der Menge A liegt: T A ( x : x T x A ) Beispiele: {2}{1,2} { 1, 2 } { 1 , 2 } Die Menge T heisst eine echte Teilmenge der Menge A, wenn T eine Teilmenge von A, aber nicht gleich A ist: T A ( x : x T x A ) T A Beispiel: { 2 } { 1 , 2 } Mengen, Relationen, Funktionen 2 Formale Grundlagen der Informatik Prominente Mengen = Menge der natürlichen Zahlen ohne 0 = { 1 , 2 , 3 ,…} 0 = Menge der natürlichen Zahlen mit 0 0 = { 0, 1 , 2 , 3 ,…} = Menge der ganzen Zahlen = { 0 , 1 , -1 , 2 , -2 , 3 , -3 ,…} = Menge der rationalen Zahlen = { a / b |a b } = Menge der reellen Zahlen = Menge der komplexen Zahlen Mengen, Relationen, Funktionen 3 Formale Grundlagen der Informatik Spezielle Mengen (1) Durchschnittsmenge Der Durchschnitt zweier Mengen A und B ist die Menge aller Elemente, die sowohl in A als auch in B enthalten sind. AB={x|xAxB} Vereinigungsmenge Die Vereinigung zweier Mengen A und B ist die Menge aller Elemente, die in A oder in B enthalten sind. AB={x|xAxB} Leere Menge Die leere Menge ist die Menge, die kein Element enthält. Sie wird oder {} geschrieben: = { x | x ≠ x } oderx : x Komplementärmenge Ist eine Grundmenge G und eine Menge A mit A G gegeben, so ist die Komplementärmenge Ac definiert durch: Ac = { x | x A x G } Mengen, Relationen, Funktionen 4 Formale Grundlagen der Informatik Spezielle Mengen (2) Potenzmenge Sei A eine Menge. Die Potenzmenge einer beliebigen Menge A ist die Menge P(A) aller Teilmengen von A. P(A) = { U | U A } Beispiel: P ( { 1 , 2 } ) = { , { 1 } , { 2 } , { 1 , 2 } } Differenzmenge Seien A und B beliebige Mengen. Die Differenz A – B, gesprochen A minus B, ist die Menge aller Elemente, die in A aber nicht in B liegen. A-B={x|xAxB} Beispiel: { 1 , 2 , 3 } - { 3 , 4 } = { 1 , 2 } Symmetrische Differenzmenge Die symmetrische Differenz zweier Mengen A und B ist die Menge A B aller Elemente, die genau in einer der beiden Mengen liegen. AB=(AB)–(AB) Beispiel: { 1 , 2 , 3 } { 3 , 4 } = { 1 , 2 , 4 } Mengen, Relationen, Funktionen 5 Formale Grundlagen der Informatik Weitere Eigenschaften Kardinalität einer Menge Sei A eine Menge mit endlich vielen Elementen. Die Anzahl | A | nennt man die Mächtigkeit oder Kardinalität der Menge. Zwei endliche Mengen haben dieselbe Kardinalität, wenn die Anzahl Elemente in beiden Mengen gleich ist. Die Kardinalität von unendlichen Mengen wird später definiert. Disjunktheit Zwei Mengen A und B heissen disjunkt, wenn ihr Durchschnitt leer ist. AB= Paarweise Disjunktheit Eine Menge X von Mengen heisst paarweise disjunkt, wenn der Durchschnitt von jedem Paar von Mengen leer ist. A, B X : A ≠ B A B = Mengen, Relationen, Funktionen 6 Formale Grundlagen der Informatik Familien von Mengen Familie von Mengen Menge M von Mengen Ai, die durch eine Indexmenge I indiziert sind: i : i I Ai M Vereinigung M = i I Ai = { x | i I : x Ai} Durchschnitt M = i I Ai = { x | i I : x Ai} Mengen, Relationen, Funktionen 7 Formale Grundlagen der Informatik Mengengesetze Idempotenz Kommutativität Assoziativität Distributivität Absorption Reflexivität Kontraktion Monotonie AA=A AB=BA (A B) C = A (B C) A (B C) = (A B) (A C) A (A B) = A AA (A B) A AB ACBC AA=A AB=BA (A B) C = A (B C) A (B C) = (A B) (A C) A (A B) = A AA (A B) A AB ACBC Existiert eine Grundmenge G mit A,B G, so gelten ferner: Neutrale Elemente Invariable Elemente Extremalität De Morgansche Regeln Komplement AG=A A= A (A B)c = Ac Bc A=A AG=G GA (A B)c = Ac Bc Ac A = G Ac A = Mengen, Relationen, Funktionen 8 Formale Grundlagen der Informatik Beweise in der Mengenlehre Venn Diagramme: graphische Veranschaulichung; allenfalls mit Fallunterscheidungen Direkter Beweis durch Anwendung von Definitionen, Axiomen und Gesetzen. Indirekter Beweis durch Negation der Aussage und Angabe eines Gegenbeispiels. Um A = B zu beweisen, beweise man A B und B A. Transfer Methode: Eine mengentheoretische Formel wird in eine äquivalente aussagenlogische Formel umgewandelt, die dann bewiesen wird. Diese Methode beruht auf der Verwandtschaft zwischen Aussagenlogik und Mengenlehre, die damit zu tun hat, dass beide Systeme Boole’sche Algebren sind. Mengenlehre Aussagenlogik Mengen, Relationen, Funktionen 9 Formale Grundlagen der Informatik Direkter Beweis: ist Teilmenge jeder Menge Gegeben: 1. T A x : x T x A 2. x : x Zu beweisen: A Beweis: A x : x x A (1) A x : ⊥ x A (2) A (3) (⊥ ist die immer falsche Aussage, die immer wahre) (1) Definition von , (2) Axiom für , x ist für jedes x falsch, (3) ⊥ Q ist für jede Aussage Q wahr Mengen, Relationen, Funktionen 10 Formale Grundlagen der Informatik Indirekter Beweis: ist nicht echte Teilmenge jeder Menge Gegeben: 1. T ⊂ A ( x : x T x A ) T A 2. x : x Zu beweisen: ¬(⊂A) Beweis: Annahme des Gegenteils: ⊂ A Gegenbeispiel: A = Einsetzen in der Definition: ⊂ ( x : x x ) ( x : x x ) ist ein Widerspruch. Mengen, Relationen, Funktionen 11 Formale Grundlagen der Informatik Direkter Beweis: (AB)–(AB)=(A–B)(B–A) Gegeben: Die Definitionen von , , –, , Beweis: (AB)–(BA)= {x|xAxB}–{x|xAxB}= (1) {x|(xAxB)¬(xAxB)}= (2) {x|(xAxB)(xAxB)}= (3) {x|(xAxA)(xAxB) (xBxA)(xBxB)}= (4) {x|(xAxB)(xBxA)}= (5) (A–B)(B–A) (1) Definitionen , , (2) Definition –, (3) Definition und , de Morgan, (4) Distributivität, (5) Vereinfachung, Definitionen , –. Mengen, Relationen, Funktionen 12 Formale Grundlagen der Informatik Geordnete Paare und n-Tupel Geordnete Paare ( a , b ) heisst das geordnete Paar der Elemente a und b. Gleichheit von Paaren Die Paare (a1, b1) und (a2, b2) sind genau dann gleich, wenn a1 = a2 b1 = b2 n-Tupel (a1, …, an) heisst das geordnete n-Tupel der Elemente a1 bis an. Gleichheit von n-Tupeln Die n-Tupel ( a1 , …, an ) und ( b1 , … , bn ) sind genau dann gleich, wenn a1 = b1 … an = bn. Mengen, Relationen, Funktionen 13 Formale Grundlagen der Informatik Relationen Kartesisches Produkt Das kartesische Produkt der beiden Mengen A und B ist die Menge A B aller geordneten Paare (a , b) mit a A, b B. AB={(a,b)|aAbB} Man schreibt A2 = A A, A3 = A A A, usw. Binäre Relationen Sei A eine Menge. Eine binäre Relation R auf A ist eine Teilmenge des kartesischen Produkts der Menge A mit sich selbst. RAA Seien A1 und A2 Mengen. Eine binäre Relation R auf A1 und A2 ist eine Teilmenge des kartesischen Produkts A1 A2. R A1 A2 Infixnotation: Für (a, b) R schreibt man auch aRb. n-stellige Relationen Seien A1, A2, …, An Mengen. Eine n-stellige Relation R auf A1, A2, …, An ist eine Teilmenge des kartesischen Produkts der Mengen A1, A2, …, An. R A1 A2 … An Mengen, Relationen, Funktionen 14 Formale Grundlagen der Informatik Die 16 binären Relationen auf A = {1,2} • Ri {1,2} {1,2} R1 R9 {(1,2),(2,1)} R2 {(1,1)} R10 {(1,2),(2,2)} R3 {(1,2)} R11 {(2,1),(2,2)} R4 {(2,1)} R12 {(1,1),(1,2),(2,1)} R5 {(2,2)} R13 {(1,1),(1,2),(2,2)} R6 {(1,1),(1,2)} R14 {(1,1),(2,1),(2,2)} R7 {(1,1),(2,1)} R15 {(1,2),(2,1),(2,2)} R8 {(1,1),(2,2)} R16 {(1,1),(1,2),(2,1),(2,2)} Mengen, Relationen, Funktionen 15 Formale Grundlagen der Informatik Spezielle Relationen Umkehrrelation Sei R A B eine Relation. Die Umkehrrelation zur Relation R ist die Relation R-1 B A mit R-1 = { ( b , a ) | ( a , b ) R } Komposition von Relationen Seien R1 A B und R2 B C Relationen. Die Komposition R1 R2 A C von R1 und R2 wird definiert durch a A, c C : ( a , c ) R1 R2 b B : ( a , b ) R1 ( b , c ) R2 Beispiel für Komposition von Relationen Programme können als Relationen ihrer Eingabe- und Ausgabewerte verstanden werden. Die Hintereinanderausführung von zwei Programmen entspricht dann der Komposition der entsprechenden Relationen. Mengen, Relationen, Funktionen 16 Formale Grundlagen der Informatik Eigenschaften von Relationen Eine Relation R A B ist • Linkstotal: Jedes Element a A tritt in mindestens einem Paar ( a , b ) R links auf. a A : b B : ( a , b ) R • Rechtstotal: Jedes Element b B tritt in mindestens einem Paar ( a , b ) R rechts auf. bB:aA:(a,b)R • Linkseindeutig: Für ein b B zu dem es ein a A gibt mit ( a , b ) R ist dieses linke a eindeutig. a1, a2 A : ( b B : ( a1 , b ) R ( a2 , b ) R ) a1 = a2 • Rechtseindeutig: Für ein a A zu dem es ein b B gibt mit ( a , b ) R ist dieses rechte b eindeutig. b1, b2 B : ( a A : ( a , b1 ) R ( a , b2 ) R ) b1 = b2 Mengen, Relationen, Funktionen 17 Formale Grundlagen der Informatik Beispiel: Ein/Ausgabe Relation von Programmen INTEGER A READ (A) WHILE (A <> 0) DO { A := A - 2 } WRITE (A) Datentyp INTEGER: beliebig grosse ganze Zahlen Ein/Ausgabe Relation: R mit ( x , y ) R genau dann, wenn das Programm auf die Eingabe von x mit der Ausgabe von y reagiert. Ist das Programm linkstotal, rechtstotal, linkseindeutig, rechtseindeutig? Mengen, Relationen, Funktionen 18 Formale Grundlagen der Informatik Eigenschaften von binären Relationen Eine binäre Relation R X X heisst • Reflexiv: Jedes Element x steht zu sich selber in Relation. x X : ( x , x ) R • Irreflexiv: Kein Element steht zu sich selber in Relation. x X : ( x , x ) R • Symmetrisch: Zu jedem Paar in der Relation ist auch das gespiegelte Paar in der Relation. x, y X : ( x , y ) R ( y , x ) R • Antisymmetrisch (identitiv): Zu jedem Paar in der Relation ist das gespiegelte Paar nur dann in der Relation, wenn die Elemente gleich sind. x, y X : ( x , y ) R ( y , x ) R x = y • Asymmetrisch: Zu jedem Paar in der Relation ist das gespiegelte Paar nicht in der Relation. x, y X : ( x , y ) R ( y , x ) R • Transitiv: x, y, z X : ( x , y ) R ( y , z ) R ( x , z ) R Mengen, Relationen, Funktionen 19 Formale Grundlagen der Informatik Äquivalenzrelationen Eine Äquivalenzrelation auf einer Menge M ist eine binäre Relation M M die reflexiv, symmetrisch und transitiv ist. Gleichheit ("=") ist die prototypische Äquivalenzrelation. Partition: Sei M eine Menge. Eine Partition von M ist eine Menge P von Teilmengen von M, also P P (M), für die die folgenden Eigenschaften gelten: 1. Keine Teilmenge der Partition ist leer. 2. Die Teilmengen der Partition sind paarweise disjunkt. 3. Die Vereinigung aller Teilmengen der Partition ist die Menge M. Äquivalenzklassen: Sei M M eine Äquivalenzrelation. Zu jedem Element m M heisst die Menge (m) = { x M | x m } die von m erzeugte Äquivalenzklasse. Für jede Äquivalenzrelation auf einer Menge X bildet die Menge der Äquivalenzklassen von eine Partition P von X. Mengen, Relationen, Funktionen 20 Formale Grundlagen der Informatik Beispiel einer Äquivalenzrelation a ≡ b modulo n – d.h. a und b geben bei der Division durch n den gleichen Rest r 0 – definiert eine Äquivalenzrelation m auf der Menge a = k1 * n + r b = k2 * n + r (ki , r = 0, ..., n-1) a m b a – b = k * n Reflexivität a : a m a (a – a = 0 * n) Symmetrie a, b : a m b b m a (a – b = k * n, b – a = - k * n) Transitivität a, b, c : a m b b m c a m c (a – b = k1 * n, b – c = k2 * n, a - c = (k1 + k2)* n) Mengen, Relationen, Funktionen 21 Formale Grundlagen der Informatik Beispiel einer Äquivalenzrelation Die Menge aller Zahlen a , die bei der Division durch n den gleichen Rest r 0 ergeben, bilden eine Äquivalenzklasse (r)m. Da r = 0, ..., n-1, gibt es n Äquivalenzklassen. Für n = 5 erhalten wir (0)m = { a | a m 0} = { ..., -10, -5, 0, 5, 10, ...} (1)m = { a | a m 1} = { ..., -9, -4, 1, 6, 11, ...} (2)m = { a | a m 2} = { ..., -8, -3, 2, 7, 12, ...} (3)m = { a | a m 3} = { ..., -7, -2, 3, 8, 13, ...} (4)m = { a | a m 4} = { ..., -6, -1, 4, 9, 14, ...} Die Menge der Äquivalenzklassen von m bildet eine Partition von , denn keine Äquivalenzklasse ist leer die Äquivalenzklassen sind paarweise disjunkt (0)m (1)m (2) (3)m (4)m = Mengen, Relationen, Funktionen 22 Formale Grundlagen der Informatik Weitere Beispiele von Äquivalenzrelationen Gegeben sei die Menge aller Menschen. Welche der folgenden Relationen sind Äquivalenzrelationen? • x steht zu y in Relation, falls x und y die gleiche Sprache sprechen. • x steht zu y in Relation, falls x älter oder genauso alt wie y ist. • x steht zu y in Relation, falls x und y sich gegenseitig kennen. Mengen, Relationen, Funktionen 23 Formale Grundlagen der Informatik Hüllen Sei M eine Menge und R M M eine Relation. Wir suchen nun nach der kleinsten Anzahl von geordneten Paaren aus M M, die wir zu R hinzufügen müssen, damit die so erweiterte Relation – Hülle genannt – bestimmte Eigenschaften besitzt. 1. Die transitive Hülle von R ist die Relation <R>t M M definiert durch: ( x , y ) <R>t ( x , y ) R n : t1, t2, …, tn : (x , t1), ( t1 , t2 ), …, ( tn-1 , tn ), ( tn , y ) <R>t 2. Die symmetrische Hülle von R ist die Relation <R>s M M definiert durch: ( x , y ) <R>s (( x , y ) R ( y , x ) R) <R>s = R ∪ R-1 Mengen, Relationen, Funktionen 24 Formale Grundlagen der Informatik Hüllen 3. Die reflexiv-transitive Hülle von R ist die Relation <R>rt M M definiert durch: ( x , y ) <R>rt (( x , y ) <R>t x = y) 4. Die reflexiv-symmetrisch-transitive Hülle von R ist die Relation <R>rst M M definiert durch: <R>rst = <<R> s > rt <R>rst ist die „kleinste“ Erweiterung von R zu einer Äquivalenzrelation. Mengen, Relationen, Funktionen 25 Formale Grundlagen der Informatik Funktionen Eine Funktion f ist eine binäre Relation f A B, die linkstotal und rechtseindeutig ist: Zu jedem a A gibt es genau ein b B mit (a , b) f. Bei Funktionen schreibt man f : A B anstatt f A B und f(a) = b anstatt (a , b) f. Terminologie 1. A heisst der Definitionsbereich von f. 2. B heisst der Wertebereich von f. 3. Die Menge f(A) = { f(a) | a A } heisst das Bild von f. Eigenschaften von Funktionen 1. Eine Funktion ist surjektiv, wenn sie rechtstotal ist. 2. Eine Funktion ist injektiv, wenn sie linkseindeutig ist. 3. Eine Funktionen ist bijektiv, wenn sie surjektiv und injektiv ist. Sind f : A B und g : B C Funktionen, so bezeichnet g f : A C die Komposition von f und g, die durch (g f)(a) = g(f(a)) definiert ist. Mengen, Relationen, Funktionen 26 Formale Grundlagen der Informatik Spezielle Funktionen Identität Die Funktion idA : A A, die durch idA(a) = a definiert ist, heisst die Identität. Konstante Funktion Eine Funktion c : A B, die für alle Werte des Arguments denselben Wert hat, heisst konstant. Umkehrfunktion Eine Funktion g : B A heisst eine Umkehrfunktion einer Funktion f : A B, wenn g f : A A gleich idA ist, und f g : B B gleich idB ist. Eine Funktion hat genau dann eine Umkehrfunktion, wenn sie bijektiv ist. Diese Umkehrfunktion ist eindeutig. • Charakteristische Funktion Gegen sei eine Menge A und ein Element a A. Die Funktion xa: A {0,1} ist definiert als xa(a) = 1 und xa(b) = 0 für b a und heisst die charakterische Funktion von a.. Mengen, Relationen, Funktionen 27 Formale Grundlagen der Informatik Kardinalität von Mengen Anzahl von Elementen (informell) Sei A eine Menge mit endlich vielen Elementen. Die Anzahl |A| nennt man die Mächtigkeit oder Kardinalität der Menge. Zwei endliche Mengen haben dieselbe Kardinalität, wenn die Anzahl Elemente in beiden Mengen gleich ist. Nimmt man je ein Element aus beiden Mengen heraus, bleiben am Ende zwei leere Mengen. Cantor hat diese Idee für unendliche Mengen weiterentwickelt: Zwei unendliche Mengen haben dieselbe Kardinalität, wenn sich die Elemente beider Mengen paaren lassen: 1 2 2 4 3 6 4 8 5 10 6 12 7 14 8 16 9 18 10 20 … Mengen, Relationen, Funktionen 28 Formale Grundlagen der Informatik Kardinalität von Mengen (2) Formaler: |X| = |Y| es gibt eine Bijektion zwischen X und Y |X| |Y| es gibt eine injektive Funktion von X nach Y Die Relation definiert durch X Y es gibt eine Bijektion zwischen X und Y ist eine Äquivalenzrelation. Wir definieren nun |X| als die Äquivalenzklasse (X) Die Kardinalität von ist 0 (Aleph null). 0 ist die kleinste unendliche Kardinalzahl. Mengen mit der Kardinalzahl 0 werden abzählbar unendlich genannt. Eine weitere Kardinalzahl ist c. Dies ist die Kardinalität von P() und . Mengen mit der Kardinalzahl c werden überabzählbar genannt. Cantors Diagonalisierungsargument beweist c <> 0. Mengen, Relationen, Funktionen 29 Formale Grundlagen der Informatik Cantors Diagonalisierungsargument für |P ( )| > | | Beweis durch Widerspruch. Wir nehmen an, dass |P()| ||. D.h., man kann jeder Teilmenge von eine Zahl aus so zuordnen, dass jede Zahl aus höchstens einmal benutzt wird. Uns interessieren die Paare, bei denen die Teilmenge von die Zahl aus nicht enthält, mit der sie gepaart wird. Beim Paar (1, {2}) z.B. enthält die Teilmenge die Zahl nicht, jedoch beim Paar (2, {2, 3}) enthält sie sie. Wir definieren eine Teilmenge M so, dass M die Zahlen enthält, die entweder nicht gepaart sind oder mit einer Teilmenge von gepaart sind, die die Zahl nicht enthalten. M ist eine Teilmenge von . Also muss es ein Paar (z , M) geben. Ist z ein Element von M? Ja: Dann ist z gepaart mit einer Menge, die z enthält. Das ist ein Widerspruch zur Definition von M. Nein: Dann ist z gepaart mit einer Menge aus |P()| (nämlich M), die z nicht enthält. Nach der Definition von M muss z dann aber ein Element von M sein. Widerspruch. Also muss |P()| > || gelten. Mengen, Relationen, Funktionen 30 Formale Grundlagen der Informatik Russelsches Paradox in der naiven Mengenlehre Axiom der Komprehension: Für jede Eigenschaft können wir eine Menge bilden, die genau die Elemente enthält, die diese Eigenschaft haben. Der Begriff der Eigenschaft muss eingeschränkt werden, sonst entsteht ein Widerspruch. Beispiel: Man definiere M als die Mengen aller Mengen, die sich selbst nicht enthalten: M={X|XX} Frage: Enthält M sich selber? Ja. Wenn M sich selbst enthält, dann darf M sich selbst nicht enthalten Nein. Wenn M sich selbst nicht enthält, dann muss M sich selbst enthalten Wir wissen aber aus der Logik, dass aus einem Widerspruch alles abgeleitet werden kann. Mengen, Relationen, Funktionen 31 Formale Grundlagen der Informatik Rechnen mit Kardinalitäten Für endliche Mengen gilt: |AB|=|A|+|B|–|AB| |ABC|=|A|+|B|+|C| – | A B |– | A C |– | B C | + | A B C | | A - B | = | A | - | B |, falls B A |AB|=|A|•|B| Für abzählbar unendliche Mengen gilt: 0 + 0 = 0 0 • 0 = 0 Was ist mit 0 - 0 ? Mengen, Relationen, Funktionen 32