Formale Methoden 2 Gaetano Geck Lehrstuhl I – Logik in der Informatik WS 2014/2015 1 Mengen 2 Relationen 3 Abbildungen 4 Algebraische Strukturen Verknüpfungen Monoide Beispiel: Restklassen Exkurs: Formale Sprachen 5 Ordnungen und spezielle Relationen Mengenlehre / Algebraische Strukturen Verknüpfungen: Assoziativität, Kommutativität Als Operatoren oder Verknüpfungen werden Abbildungen bezeichnet, die gleichartige oder ähnliche Objekte miteinander verbinden (meist unär oder binär). √ d +, ×, , dx , ∇; Die Argumente heißen Operanden. Beispiele: ◦, Definition 4.1 (Assoziativität, Kommutativität) Eine binäre Verknüpfung • : X × X → X ist assoziativ, wenn (x • y) • z = x • (y • z) für alle x, y, z ∈ X gilt; kommutativ, wenn x • y = y • x für alle x, y ∈ X gilt. Beispiele 4.2 Die Addition ist assoziativ und kommutativ. Die Komposition ist assoziativ, aber nicht kommutativ. Vereinigung und Schnittbildung sind assoziativ und kommutativ. Die Division ist weder assoziativ noch kommutativ. Aufgabe Geben Sie ein Gegenbeispiel zur Kommutativität der Komposition von Abbildungen an. FM2 (WS 2014/15, Geck) 49 Mengenlehre / Algebraische Strukturen Verknüpfungen: Distributivität Bemerkung: Assoziative Verknüpfungen erlauben das Weglassen von Klammern ohne Änderung des Ergebnisses: (a + (b + (c + d))) = (a + b) + (c + d) = a + b + c + d. Kommutative Verknüpfungen erlauben beliebige Reihenfolgen der Operanden ohne Änderung des Ergebnisses: a + b + c + d = d + c + b + a. Definition 4.3 (Distributivität) Seien •, ? : X × X → X zwei Verknüpfungen. Die Verknüpfung • ist distributiv über ?, wenn für alle x, y, z ∈ X gilt: x • (y ? z) = (x • y) ? (x • z) | {z } und (x ? y) • z = (x • z) ? (y • z) . | {z } linksdistributiv rechtsdistributiv Beispiele 4.4 Die Multiplikation ist distributiv über der Addition: a · (b + c) = (a · b) + (a · c) Die Vereinigung ist distributiv über dem Schnitt, M ∪ (N ∩ Q) = (M ∪ N) ∩ (M ∪ Q), und ebenso der Schnitt über der Vereinigung (Aufgabe 1.3b)). FM2 (WS 2014/15, Geck) 50 Mengenlehre / Algebraische Strukturen Verknüpfungen: Abgeschlossenheit Situation: Verknüpfung • ist auf einer Menge X definiert, man betrachtet eine Teilmenge Y ⊆ X Frage: Ist die Verknüpfung von Operanden aus Y selbst in Y ? Beispiel 4.5 Betrachte Z mit der Subtraktion und Teilmenge N0 , dann gibt es n, m ∈ N0 , sodass (n − m) < N0 . Betrachte die Menge F aller Funktionen f : R → R mit der Komposition und der Teilmenge P der Polynome, P = {p : R → R | p(x) = an xn +. . .+a1 x1 +a0 für alle x ∈ R, wobei n ∈ N0 , an , . . . , a0 ∈ R}, • dann ist (p + q) ∈ P, • und es ist (p ◦ q) ∈ P, • aber es gibt p, q ∈ P, sodass (p/q) < P ist. (Für f , g ∈ F ist (f + g)(x) = f (x) + g(x)) Definition 4.6 Sei • : X n → X eine n-stellige Verknüpfung auf X . Eine Teilmenge Y ⊆ X heißt abgeschlossen unter •, wenn für alle y1 , . . . , yn ∈ Y auch •(y1 , . . . , yn ) ∈ Y gilt. Umformulierung: Die Menge der Polynome ist also unter der (argumentweisen) Addition und der Komposition für Funktionen abgeschlossen, nicht jedoch unter Division. FM2 (WS 2014/15, Geck) 51 Mengenlehre / Algebraische Strukturen Monoide Definition 4.7 Eine Halbgruppe (M, •) ist eine Menge M mit einer assoziativen Verknüpfung • : M × M → M. Ein Element e ∈ M heißt neutral bezüglich •, wenn e • m = m = m • e für alle m ∈ M gilt. Ein Monoid (M, •, e) ist eine Halbgruppe (M, •) mit neutralem Element e. Beispiele 4.8 P(X), ∪, ∅ ist für jede Menge X ein Monoid: ∅ ∪ X = X = X ∪ ∅. (N0 , +, 0) ist ein Monoid: 0 + n = n = n + 0. (N, +) ist eine Halbgruppe ohne neutrales Element. (N, ·, 1) ist ein Monoid: 1 · n = n = n · 1. FM2 (WS 2014/15, Geck) 52 Mengenlehre / Algebraische Strukturen Monoide: Erzeugtes freies Monoid Definition 4.9 Für eine nichtleere Menge Σ ist (Σ∗ , ◦, ε) das von Σ erzeugte freie Monoid, wobei Σ∗ = S n∈N0 Σn die Menge aller endlichen Folgen (Tupel) ist, die Konkatenation ◦ zwei Folgen durch Hintereinanderschreiben zu einer verknüpft: (σ1 , . . . , σk ) ◦ (τ1 , . . . , τ` ) = (σ1 , . . . , σk , τ1 , . . . , τ` ) und ε die leere Folge () ist. Beispiel 4.10 Für Σ = Z ergibt sich beispielsweise (Z∗ , ◦, ε) mit Z∗ = {ε} ∪ {(n1 , . . . , nk ) | es gibt ein k ∈ N0 und n1 , . . . , nk ∈ Z} gilt beispielsweise ε, (3), (1, 2), (1, 2, 1, 3, 4) ∈ Z∗ (3) ◦ (1, 2) = (3, 1, 2), (1, 2) ◦ 3 = (1, 2, 3) und ε ◦ (1, 2) = (1, 2) Bemerkung: Es handelt sich um ein Monoid, da das Hintereinanderschreiben eine assoziative Verknüpfung ist: (1) ◦ (2, 3) ◦ (4, 5) = (1, 2, 3) ◦ (4, 5) = (1, 2, 3, 4, 5) = (1) ◦ (2, 3, 4, 5) = (1) ◦ (2, 3) ◦ (4, 5) FM2 (WS 2014/15, Geck) 53 Mengenlehre / Algebraische Strukturen Monoide: Beispiel – Restklassen Zn Für jede positive ganze Zahl n ∈ N können die ganzen Zahlen mit gleichem Rest bei Division durch n zusammengefasst werden, zur Menge Zn der Restklassen modulo n: o n Zn = Z/≡n = [0]≡n , [1]≡n , . . . , [n − 1]≡n . Bemerkung: Die Äquivalenzklassen heißen in diesem Fall Restklassen. Bei festem n, werden die Klammern meist weggelassen (man merkt sich, dass 2 die Klasse [2]≡n repräsentiert) Beispiel 4.11 Auf dem Quotienten Zn können eine Addition ⊕ und eine Multiplikation definiert werden: [k1 ]≡n ⊕ [k2 ]≡n = [k1 + k2 ]≡n für alle k1 , k2 ∈ Z; [k1 ]≡n [k2 ]≡n = [k1 · k2 ]≡n für alle k1 , k2 ∈ Z. Fakt 4.12 Zn , ⊕, [0]≡n ist ein Monoid Zn , , [1]≡n ist ein Monoid FM2 (WS 2014/15, Geck) 54 Mengenlehre / Algebraische Strukturen Homomorphismen Verknüpfungen definieren eine Struktur unter den Elementen einer Menge. Abbildungen zwischen Monoiden, die diese Struktur „respektieren“ (mit ihr „verträglich“ sind), sind besonders nützlich. Definition 4.13 ((Monoid-)Homomorphismus) Eine Abbildung h : M → N zwischen Monoiden (M, •, em ) und (N, ?, en ) ist ein (Monoid-)Homomorphismus, wenn h(em ) = en und für alle m1 , m2 ∈ M gilt: h(m1 • m2 ) = h(m1 ) ? h(m2 ). Ein bijektiver Homomorphismus heißt Isomorphismus. Beispiel 4.14 (Restklassen) Die Abbildung h : (Z, +, 0) → Zn , ⊕, [0]≡n mit k 7→ (k mod n) ist ein Homomorphismus. Zu zeigen ist h(k1 + k2 ) = h(k1 ) ⊕ h(k2 ) für alle k1 , k2 ∈ Z, k1 = q1 n + r1 ; k2 = q2 n + r2 für die eindeutige r1 , r2 ∈ {0, . . . , n − 1}: h i h i h(k1 + k2 ) = (q1 n + r1 ) + (q2 n + r2 ) mod n = (q1 + q2 )n + (r1 + r2 ) mod n = (r1 + r2 ) mod n = [r1 + r2 ]≡n = [r1 ]≡n ⊕ [r2 ]≡n = h(k1 ) ⊕ h(k2 ) FM2 (WS 2014/15, Geck) 55 Mengenlehre / Algebraische Strukturen Exkurs: Formale Sprachen Definition 4.15 Ein Alphabet ist eine nichtleere endliche Menge, deren Elemente Zeichen heißen. Ein Wort ist eine endliche Folge über einem Alphabet. Konvention: Bereitet die Unterscheidung der Zeichen keine Probleme, werden Klammern und Kommata weggelassen. Beispiel 4.16 Alphabet {0, 1} mit zwei Zeichen 0 und 1 und der Menge {0, 1}∗ = {ε, 0, 1, 00, 01, 10, 11, 000, . . . } aller Wörter über {0, 1}; Alphabet {a} mit einem Zeichen a und der Menge {a}∗ = {ε, a, aa, aaa, aaaa, . . . } aller Wörter über {a}. Bemerkung: Das Konkatenationssymbol ◦ wird oftmals weggelassen: Für w1 = 47 und w2 = 11 ist w1 ◦ w2 = w1 w2 = 4711. Die n-fache Wiederholung eines Wortes w schreiben wir wn : Für w = aab gilt w3 = aabaabaab FM2 (WS 2014/15, Geck) 56 Mengenlehre / Algebraische Strukturen Exkurs: Formale Sprachen Definition 4.17 Die Länge |w| eines Wortes ist die Länge der Folge (die Stelligkeit des Tupels). Für ein Wort w ∈ Σ∗ und ein Zeichen σ ∈ Σ ist #σ (w) die Anzahl der Vorkommen von σ in w. Die Umkehrung wR eines Wortes w = σ1 . . . σn ist wR = σn . . . σ1 . Beispiele 4.18 |ε| = 0, |010| = 3, |03 15 | = 8 #a (aabab) = 3, #b (aabab) = 2 (aabab)R = babaa Fakt 4.19 Für jedes Alphabet Σ und jedes Zeichen σ ∈ Σ gilt: | · | ist ein Homomorphismus von Σ∗ , ◦, ε in (Z, +, 0); #σ ist ein Homomorphismus von Σ∗ , ◦, ε in (Z, +, 0). FM2 (WS 2014/15, Geck) 57 Mengenlehre / Algebraische Strukturen Exkurs: Formale Sprachen Definition 4.20 Eine (formale) Sprache über einem Alphabet Σ ist eine Teilmenge von Σ∗ . Bemerkung: Die leere Sprache ∅ (die kein Wort enthält) ist Sprache über jedem Alphabet; ebenso die Sprache {ε} (die nur das leere Wort enthält). Beispiel 4.21 L1 = {a2n | n ∈ N0 } = {ε, aa, aaaa, . . . } ist die Menge aller Wörter gerader Länge über dem Alphabet {a} L2 = {w ∈ {a, b}∗ | #a (w) > 0} = {a, aa, ab, ba, aaa, aab, . . . } ist die Menge aller Wörter über dem Alphabet {a, b} mit mindestens einem a Aufgaben Beschreiben Sie die folgenden Sprachen informell: L3 = {an bn | n ∈ N0 } L4 = {wwR | w ∈ {a, b}∗ } L5 = {w FM2 (WS 2014/15, Geck) | w ∈ {o, t}∗ , w = wR } 58 Mengenlehre / Algebraische Strukturen Exkurs: Formale Sprachen Die Betrachtung relativ abstrakter formaler Sprachen kann (zum Teil) durch Homomorphismen (eingeschränkte Umbenennungen) gerechtfertigt werden. Fakt 4.22 Ein Homomorphismus von (Σ∗ , ◦, ε) in (Γ∗ , ◦, ε) ist eine Abbildung h : Σ∗ → Γ∗ der Form h(ε) h(σ1 . . . σn ) = = ε h(σ1 ) ◦ · · · ◦ h(σn ) Bemerkung: Es genügt also, die Bilder von h unter den Zeichen von Σ zu definieren (h0 : Σ → Γ∗ statt h : Σ∗ → Γ∗ ), die Fortsetzung auf Σ∗ ergibt sich dann über obige Gleichung. Beispiel 4.23 Sei h03 : {a, b} → {begin, end}∗ mit h03 (a) = begin, h03 (b) = end, dann ist h3 (L3 ) = {ε, begin end, begin begin end end, . . . } die Sprache der korrekten Klammerungen von begin- und end-Schlüsselwörtern. Aufgabe Sei h02 : {a, b} → {a, b}∗ mit h02 (a) = aa und h02 (b) = ε. Bestimmen Sie h2 (L3 ). Bestimmen Sie h2 (L2 ). FM2 (WS 2014/15, Geck) 59