Formale Methoden 2 Gaetano Geck Lehrstuhl I – Logik in der Informatik WS 2015/2016 Teil 4: Formale Sprachen 1 Motivation 2 Rechtsreguläre Grammatiken 3 Exkurs: Abgeschlossenheit 4 Strukturelle Induktion Formale Sprachen / Motivation Motivation (1/3) In der Berechenbarkeitstheorie und der Komplexitätstheorie werden algorithmische Probleme untersucht, hinsichtlich • ihrer Lösbarkeit überhaupt sowie • der zur Lösung benötigten Ressourcen (Zeit, Platz, . . . ); wobei die algorithmischen Probleme oftmals recht abstrakt modelliert werden, als formale Sprachen. Definition 1.1 (Formale Sprache) Eine (formale) Sprache ist eine Menge L ⊆ Σ∗ von Wörtern über einem Alphabet Σ. Hier: Probleme, die nach Ja/Nein-Antwort fragen (entsprechen der Sprache, die genau die Ja-Antworten enthält) GTI: Zusammenhang mit Problemen, die nach • einfachen Werten (Zeichen, Zahlen, . . . ) und • komplexen Werten (Abbildung, Mengen, . . . ) fragen FM2 (WS 2014/15, Geck) 3 Formale Sprachen / Motivation Motivation (2/3) Zusammenhang zwischen algorithmischem Problem und formaler Sprache konkret: Beispiel 1.2 Algorithmisches Problem: Name: Eingabe: Frage: ExistsPrimeBetweenG Zahlen n1 ∈ N0 und n2 ∈ N0 mit n1 ≤ n2 Gibt es eine Primzahl p mit n1 ≤ p ≤ n2 ? Ein Algorithmus, der das Problem ExistsPrimeBetweenG entscheidet, muss etwa bei Eingabe n1 = 15 und n2 = 18 die Antwort ja zurückgeben; bei Eingabe n1 = 90 und n2 = 95 die Antwort nein zurückgeben. Modellierung als formale Sprache: Alphabet: Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, #} Eingaben: Kodiere (n1 , n2 ) ∈ N0 × N0 als Wort base10 (n1 )#base10 (n2 ) Also: ExistsPrimeBetweenG = {2#2, 2#3, 2#4, . . . , 3#3, 3#4, . . . , 4#5, . . . , 9#11, 9#12, . . . } FM2 (WS 2014/15, Geck) 4 Formale Sprachen / Motivation Motivation (3/3) Hinweis: Fortan werden wir „Problem“ und „(formale) Sprache“ synonym gebrauchen. Ja/Nein-Probleme können nach der „Gültigkeit“ von Eingaben fragen: Benutzereingaben, repräsentiert eine Zeichenkette: • • • • • eine Zahl, eine E-Mail-Adresse, eine URL, ein Zeitangabe, ...? Quellcode: • kompilierbarer Java-Code • kompilierbarer Java-Code mit Eigenschaften: I Programm hält für jede Eingabe nach spätestens 10 Minuten I Programm hält für jede Eingabe irgendwann I ... ... Fragen: 1 Wie können gültige Eingaben beschrieben werden? 2 Wie kann eine Eingabe auf Gültigkeit überprüft werden? Fakt: Die Antwort hängt von der „Komplexität“ des Problems (der Sprache) ab! FM2 (WS 2014/15, Geck) 5 1 Motivation 2 Rechtsreguläre Grammatiken Korrektheit und Vollständigkeit 3 Exkurs: Abgeschlossenheit 4 Strukturelle Induktion Formale Sprachen / Rechtsreguläre Grammatiken Rechtsreguläre Grammatiken Wir betrachten zunächst Punkt 1 für eine einfache Klasse von Sprachen. Ziel: Beschreibung aller Wörter über Σ = {a, b, c} mit einer geraden Anzahl von b, etwa bcc, baa, aaaacaa, . . . Beobachtung: Es gibt unendlich viele solche Bezeichner (Aufzählen zwecklos). Wunsch: Formalismus zur (einfachen) Beschreibung dieser Bezeichner. Definition 2.1 Eine rechtsreguläre Grammatik ist ein Quadrupel (V, Σ, P, S), bestehend aus einer Menge V von Variablen, einem Alphabet Σ, einer Menge P von Produktionen und einer ausgezeichneten Variable S ∈ V , dem Startsymbol. Jede Produktion p ∈ P ist von der Form X → ε oder X → σ oder X → σY , für Variablen X, Y ∈ V und ein Zeichen σ ∈ Σ. FM2 (WS 2014/15, Geck) 7 Formale Sprachen / Rechtsreguläre Grammatiken Rechtsreguläre Grammatiken: Beispiel Definition 2.2 Sei w ein Wort über einem Alphabet Σ und σ ein Zeichen aus Σ. Die Abbildung #σ : Σ∗ → N0 bildet jedes Wort w ∈ Σ∗ auf die Anzahl der Vorkommen des Zeichens σ in w ab. Die Sprache aller Wörter über {a, b, c} mit gerader Anzahl von b lässt sich schreiben als: L2b = w ∈ {a, b, c}∗ | #b (w) mod 2 = 0 . Beispiel 2.3 Wir definieren eine Grammatik G2b = ({X0 , X1 }, {a, b, c}, P, X0 ) mit Produktionen p1 p2 p3 p4 p5 p6 p7 oder kurz: X0 X1 FM2 (WS 2014/15, Geck) → → : : : : : : : ε X0 X0 X0 X0 X1 X1 X1 → → → → → → → | aX0 aX1 ε aX0 bX1 cX0 aX1 bX0 cX1 | bX1 | bX0 | cX0 | cX1 8 Formale Sprachen / Rechtsreguläre Grammatiken Rechtsreguläre Grammatiken: Semantik (1/2) Frage: Welche Sprache beschreibt die Grammatik G2b ? Intuitiv: Die Menge aller Wörter, die sich vom Startsymbol X0 aus ableiten lassen. Definition 2.4 (Ableitungsschritt) Sei G = (V, Σ, P, S) eine rechtsreguläre Grammatik. Ein Ableitungschritt von wX nach wρ mit einem Wort w ∈ Σ∗ , einer Variable X und einer Satzform ρ ∈ {ε} ∪ Σ ∪ Σ ◦ V liegt vor, falls es eine Produktion X → ρ in P gibt. Wir schreiben dann: wX ⇒G wρ. Beispiel 2.5 Für die Grammatik G2b mit Produktionen X0 X1 → → ε | aX0 aX1 | bX1 | bX0 | cX0 | cX1 gibt es beispielsweise die folgenden Ableitungsschritte: ccaX0 ⇒ ccabX1 , wegen X0 → bX1 ; baX0 ⇒ baε = ba, wegen X0 → ε. FM2 (WS 2014/15, Geck) 9 Formale Sprachen / Rechtsreguläre Grammatiken Rechtsreguläre Grammatiken: Semantik (2/2) Definition 2.6 (Ableitung) Sei G = (V, Σ, P, S) eine rechtsreguläre Grammatik. Eine Ableitung (der Länge n) ist eine Folge α0 , . . . , αn mit αi−1 ⇒G αi für alle i ∈ {1, . . . , n}. Wir schreiben dann α0 ⇒n αn und allgemeiner G α ⇒∗ α0 für eine Ableitung beliebiger Länge von α nach α0 . G Beispiel 2.7 Für die Grammatik G2b mit Produktionen X0 X1 → → ε | aX0 aX1 | bX1 | bX0 | cX0 | cX1 aX0 ⇒ abX1 ⇒ abcX1 ⇒ abcbX0 ⇒ abcb, also aX0 ⇒4 abcb und insbesondere aX0 ⇒∗ abcb. gilt etwa Definition 2.8 Sei G = (V, Σ, P, S) eine rechtsreguläre Grammatik und X eine Variable aus V . Die von der Variablen X erzeugte Sprache L(X) ist die Menge {w ∈ Σ∗ | X ⇒∗G w}. Die von der Grammatik G erzeugte Sprache L(G) ist die vom Startsymbol erzeugte Sprache L(S). FM2 (WS 2014/15, Geck) 10 Formale Sprachen / Rechtsreguläre Grammatiken Rechtsreguläre Grammatiken: Aufgaben Aufgabe Zeige, dass das Wort baca in der von G2b erzeugten Sprache ist. Zeige, dass das Wort bac nicht in der von G2b erzeugten Sprache ist. Aufgabe Konstruiere eine Grammatik, die alle Wörter über dem Alphabet {a, b, c, d} beschreibt, die mit einem a beginnen, mit einem d enden und ungerade viele c besitzen. Frage Wie kann man beweisen, dass die Grammatik G2b wirklich die Sprache L2b beschreibt, dass also L(G2b ) = L2b gilt? FM2 (WS 2014/15, Geck) 11 Formale Sprachen / Rechtsreguläre Grammatiken Korrektheit und Vollständigkeit Eine Grammatik G = (V, Σ, P, S) wird mit dem Ziel erstellt, eine gegebene Sprache L zu beschreiben. Frage: Wie lässt sich sicherstellen, dass die Grammatik „richtig“ ist, also L(G) = L gilt? Antwort: Die formale Modellierung (Syntax und Semantik) erlaubt das Führen eines formalen Beweises. Diese Mengengleichheit umfasst zwei Aspekte: Korrektheit der Grammatik (L(G) ⊆ L): Jedes Wort w ∈ Σ∗ mit w ∈ L(G) ist auch in der Sprache L enthalten. (d. h. jedes Wort, das sich in der Grammatik G ableiten lässt) Vollständigkeit der Grammatik (L ⊆ L(G)): Jedes Wort w ∈ Σ∗ mit w ∈ L (d. h. jedes Wort, das in der Sprache L enthalten ist) lässt sich in G ableiten; es gilt also w ∈ L(G). FM2 (WS 2014/15, Geck) 12 Formale Sprachen / Rechtsreguläre Grammatiken Korrektheit und Vollständigkeit: Beispiel Wir schauen uns das Prinzip an einem einfachen Beispiel an. Beispiel 2.9 Die Sprache L3 soll alle durch 3 teilbaren natürlichen Zahlen in Binärkodierung enthalten: b . . . b0 ∈ {0, 1}n L3 = n−1 n ∈ N0 , n−1 X i=0 . 2 · bi ≡3 0 i Wir behaupten, dass die folgende Grammatik G3 = ({R0 , R1 , R2 }, {0, 1}, P, R0 ) mit P: R0 R1 R2 → → → 0R0 0R2 0R1 | | | 1R1 1R0 1R2 | | ε die Sprache L3 beschreibt. Korrektheit (L(G3 ) ⊆ L3 ): Oft: Beweis durch vollständige Induktion nach der Ableitungslänge. Vollständigkeit (L3 ⊆ L(G3 )): Oft: Beweis durch vollständige Induktion nach der Länge des Wortes. FM2 (WS 2014/15, Geck) 13 Formale Sprachen / Rechtsreguläre Grammatiken Korrektheit L(G3 ) ⊆ L3 : Beispielbeweis (1/2) Sei w ∈ L(G3 ). Es gelte also R0 ⇒n w für ein n ∈ N. Der Fall w = ε ist klar. Deshalb im Folgenden: w = σ1 . . . σn−1 für n ∈ N. Beobachtung: In den Produktionen R0 R1 R2 → → → 0R0 0R2 0R1 | | | 1R1 1R0 1R2 | | ε ist die Regel Ri → σRj genau dann enthalten, wenn 2i + σ ≡3 j. Lemma 2.10 Seien u, w ∈ {0, 1}∗ beliebige Wörter mit bin(u) ≡3 i. Gilt uRi ⇒n uwRj , dann ist bin(uw) ≡3 j. Damit: Aus R0 ⇒n+1 w folgt bin(w) ≡3 0, denn die Ableitung endet durch Anwendung von R0 → ε: Wir wählen u = ε, i = 0 und j = 0: R0 ⇒n wR0 ⇒ wε = w. R0 =uRi ⇒ wRj ⇒ wε = w. Wegen bin(u) = bin(ε) ≡3 0 = i folgt mit dem Lemma: bin(uw) = bin(εw) = bin(ε) ≡3 j = 0, Insgesamt also w ∈ L3 . FM2 (WS 2014/15, Geck) 14 Formale Sprachen / Rechtsreguläre Grammatiken Korrektheit L(G3 ) ⊆ L3 : Beispielbeweis (2/2) Beweis von Lemma 2.10 Beweis durch vollständige Induktion nach der Länge n der Ableitung uRi ⇒n uwRj . Induktionsanfang (n = 1): Klar: Ein Zeichen b ∈ {0, 1} wird erzeugt: uRi ⇒ ubRj . Insbesondere: Ri ⇒ bRj , also (Ri → bRj ) ∈ P. Nach Beobachtung: 2i + b ≡3 j. Aus bin(u) ≡3 i folgt dann: bin(ub) ≡3 2 · bin(u) + b ≡ 2i + b = j. Induktionsschritt (n → n + 1): Es gilt: uRi ⇒n+1 ubn+1 . . . b2 b1 Rj . Also: uRi ⇒n ubn+1 . . . b2 Rk ⇒ ubn+1 . . . b2 b1 Rj . Insbesondere: uRi ⇒n ubn+1 . . . b2 Rk und nach Induktionsvoraussetzung: bin(ubn+1 . . . b2 ) ≡3 k. 2 Rk ⇒ b1 Rj und nach Beobachtung: 2k + b1 ≡3 j. 1 Zusammen: bin(ubn+1 . . . b1 ) ≡3 2bin(ubn+1 . . . b2 ) + b1 ≡ 2k + b1 ≡ j. FM2 (WS 2014/15, Geck) 15 Formale Sprachen / Rechtsreguläre Grammatiken Vollständigkeit L3 ⊆ L(G3 ): Beispielbeweis Sei w ∈ L3 beliebig. Falls w = ε, dann gilt offenbar R0 ⇒ ε = w, also w ∈ L(G3 ). Andernfalls gilt w = bn−1 . . . b0 für n ∈ N mit bin(bn−1 . . . b0 ) ≡3 0. Lemma 2.11 Sei w ∈ {0, 1}∗ beliebig. Gilt bin(w) ≡3 j, so auch R0 ⇒∗ wRj . Aufgabe Zeige, dass sich aus dieser Hilfsaussage die Vollständigkeit der Grammatik ergibt. Beweise das Lemma durch vollständige Induktion nach der Länge des Wortes. FM2 (WS 2014/15, Geck) 16 1 Motivation 2 Rechtsreguläre Grammatiken 3 Exkurs: Abgeschlossenheit 4 Strukturelle Induktion Formale Sprachen / Exkurs: Abgeschlossenheit Motivation/Definition Für Modellierung wünschenswert: komplexere Modelle aus einfachen Modellen konstruieren (idealerweise automatisch berechnen lassen) durch Verwendung von Operatoren Wir betrachten nachher: Operatoren auf Sprachen zunächst: Operatoren auf Zahlen und Abbildungen Definition 3.1 (Abgeschlossenheit) Sei ◦ ein n-stelliger Operator auf einer Menge X (also ◦ : X n → X ). Eine Teilmenge Y ⊆ X heißt abgeschlossen bezüglich ◦, falls ◦(y1 , . . . , yn ) ∈ Y für alle y1 , . . . , yn ∈ Y gilt. FM2 (WS 2014/15, Geck) 18 Formale Sprachen / Exkurs: Abgeschlossenheit Beispiel: Zahlenbereiche Wir betrachten binäre Operatoren auf der Menge R aller reellen Zahlen: die Addition + : R × R → R die Subtraktion − : R × R → R die Division ÷ : R × R → R Beispiel 3.2 (Natürliche Zahlen) Die Menge N0 der natürlichen Zahlen ist unter der Addition abgeschlossen: für alle n1 , n2 ∈ N0 gilt (n1 + n2 ) ∈ N0 . ist nicht unter der Subtraktion abgeschlossen: für 3, 8 ∈ N0 gilt beispielsweise (3 − 8) = −5 < N0 . Beispiel 3.3 (Ganze Zahlen) Die Menge Z der ganzen Zahlen ist unter Subtraktion abgeschlossen: für alle z1 , z2 ∈ Z gilt (z1 − z2 ) ∈ Z. ist nicht unter Division abgeschlossen: für 3, 2 ∈ Z gilt beispielsweise (3 ÷ 2) = 1, 5 < Z. FM2 (WS 2014/15, Geck) 19 Formale Sprachen / Exkurs: Abgeschlossenheit Beispiel: Funktionen Wir betrachten die Mengen F (R) = {f : R → R} „aller“ Funktionen (Argument x ∈ R, Wert f (x) ∈ R) P(R) = {p : R → R | p ist ein Polynom} ⊆ F (R) „aller“ Polynome. mit den Operatoren ⊕ : F (R) × F (R) → F (R), wobei für f = f1 ⊕ f2 für alle x ∈ R gilt: f (x) = f1 (x) + f2 (x). : F (R) × F (R) → F (R), wobei für f = f1 f2 für alle x ∈ R gilt: f (x) = f1 (x) f2 (x) . Beispiel 3.4 Die Menge P(R) der Polynome ist unter Addition abgeschlossen: für alle p1 , p2 ∈ P(R) gibt es ein p ∈ P(R), sodass p = p1 ⊕ p2 . ist nicht unter Division abgeschlossen: für p1 (x) = x und p2 (x) = x2 + 1 beispielsweise gilt (p1 p2 ) < P(R) Aufgabe Zeige, dass Polynome unter Addition abgeschlossen sind. FM2 (WS 2014/15, Geck) 20 Formale Sprachen / Exkurs: Abgeschlossenheit Beispiel: Sprachen (1/2) Zur Erinnerung: Sprachen sind Mengen von Wörtern. Wir bezeichnen mit Lall = {L ⊆ Σ∗ | es gibt ein Alphabet Σ} die Klasse der (formalen) Sprachen; Lrr = {L ⊆ Σ∗ | es gibt eine rechtsreguläre Grammatik G mit L(G) = L} die Klasse der regulären Sprachen; Lfin = {L ⊆ Σn | es gibt ein n ∈ N0 } die Klasse der endlichen Sprachen. Lemma 3.5 Es gilt Lfin ( Lrr ( Lall . Klar: Lrr ⊆ Lall GTI: Lrr , Lall Frage Warum gilt Lfin ( Lrr ? FM2 (WS 2014/15, Geck) 21 Formale Sprachen / Exkurs: Abgeschlossenheit Beispiel: Sprachen (2/2) Wir betrachten die Menge Lall aller formalen Sprachen und die Operatoren: Vereinigung ∪ : Lall × Lall → Lall Schnittbildung ∩ : Lall × Lall → Lall Wiederholung ∗ : Lall → Lall mit L∗ = {w1 ◦ · · · ◦ wn | es gibt ein n ∈ N0 und w1 , . . . , wn ∈ L} Beispiel 3.6 Die Klasse Lfin der endlichen Sprachen ist abgeschlossen unter Vereinigung und Schnitt: für alle L1 , L2 ∈ Lfin gilt (L1 ∪ L2 ), (L1 ∩ L2 ) ∈ Lfin . ist nicht abgeschlossen unter Wiederholung: für L = {a} ∈ Lfin beispielsweise gilt L∗ = {an | n ∈ N0 } < Lfin . FM2 (WS 2014/15, Geck) 22 1 Motivation 2 Rechtsreguläre Grammatiken 3 Exkurs: Abgeschlossenheit 4 Strukturelle Induktion Formale Sprachen / Strukturelle Induktion Strukturelle Induktion: Prinzip Ziel: Beweise eine Aussage ϕ(α) für alle Objekte α einer induktiv definierten Menge Mittel: 1 Beweise die Aussage für alle Basisobjekte 2 Beweise, dass wenn die Aussage für Objekte α1 , . . . , αn gilt, sie auch für die aus α1 , . . . , αn zusammengesetzten Objekte gilt Dabei muss jeder Operator betrachtet werden! FM2 (WS 2014/15, Geck) (Induktionsanfang) (Induktionsschluss) 24 Formale Sprachen / Strukturelle Induktion Strukturelle Induktion: Beispiel Syntax-/Semantikdefinition von 01-Ausdrücken Definition 4.1 (01-Ausdrücke, Syntax) Die Menge A der 01-Ausdrücke ist die kleinste Menge, mit den folgenden Eigenschaften: Basisausdrücke: 0 ∈ A, 1 ∈ A (Zeichen 0,1) komplexe Ausdrücke: • für alle β, γ ∈ A ist auch (β + γ) ∈ A • für alle β, γ ∈ A ist auch (β ◦ γ) ∈ A (Auswahl) (Konkatenation) Definition 4.2 (01-Ausdrücke, Semantik) Die Sprache L(α) eines 01-Ausdrucks α ∈ A ist induktiv definiert durch: Basisausdrücke: L(0) = {0}, L(1) = {1} komplexe Ausdrücke: • L(β + γ) = L(β) ∪ L(γ) • L(β ◦ γ) = L(β) ◦ L(γ) Anmerkungen: Dabei ist für Sprachen L1 , L2 ⊆ Σ∗ definiert: L = L1 ◦ L2 = {u ◦ v | u ∈ L1 , v ∈ L2 }. Die Sprache eines 01-Ausdrucks α ist eine Sprache über dem Alphabet Σ = {0, 1} (L(α) ⊆ {0, 1}∗ ). FM2 (WS 2014/15, Geck) 25 Formale Sprachen / Strukturelle Induktion Strukturelle Induktion: Beispiel Auswertung von 01-Ausdrücken Definition 4.3 (zur Erinnerung) Die Sprache L(α) eines 01-Ausdrucks α ist induktiv definiert durch: Basisausdrücke: L(0) = {0}, L(1) = {1} komplexe Ausdrücke: L(β + γ) = L(β) ∪ L(γ), L(β ◦ γ) = L(β) ◦ L(γ) Beispiel 4.4 (Auswertung) L1 = L 1 + 0 = {0, 1} L2 = L 1 ◦ 0 = {10} L3 = L 1 ◦ (0 + 1) = {10, 11} L4 = L (0 ◦ 1) ◦ (0 + 1) = {010, 011} Definition 4.5 Für eine Sprache L ⊆ Σ∗ ist die Sprache LR = {wR | w ∈ L}. Beispiele 4.6 {01, 11} R FM2 (WS 2014/15, Geck) = {10, 11}; {001, 111110, 10, 01} R = {100, 011111, 01, 10} 26 Formale Sprachen / Strukturelle Induktion Strukturelle Induktion: Beispiel Rekursive Definition Satz 4.7 R Zu jedem 01-Ausdruck α existiert ein 01-Ausdruck α0 , sodass L(α0 ) = L(α) gilt. Beweisidee (konstruktiv) Wir definieren eine Transformation τ : A → A rekursiv: Basisausdrücke: τ(0) = 0, τ(1) = 1 komplexe Ausdrücke: • τ(β + γ) = τ(β) + τ(γ) • τ(β ◦ γ) = τ(γ) ◦ τ(β) (vertausche Reihenfolge der Operanden) Behauptung: Für α0 := τ(α) gilt dann die Gleichung. Aufgabe Bestimme den Ausdruck α0 = τ (0 ◦ 1) ◦ (0 + 1) . Bestimme die Sprache L(α0 ). FM2 (WS 2014/15, Geck) 27 Formale Sprachen / Strukturelle Induktion Strukturelle Induktion: Beispiel R Korrektheitsbeweis (1/2): L(α) ⊆ L τ(α) Ziel: Beweise Behauptung, also R ⊆ L τ(α) R als auch L τ(α) ⊆ L(α) sowohl L(α) (hier) (Übungsaufgabe) Korrektheitsbeweis (Induktionsanfang) Wir beweisen L(α) Induktion. R ⊆ L τ(α) für einen beliebigen Ausdruck α ∈ A durch strukturelle Induktionsanfang (hier trivial): Sei α = 0, dann ist α0 = τ(α) = τ(0) = 0 R R und L(α) ⊆ L(0) ⊆ {0R } ⊆ {0} ⊆ L(α). Analog für α = 1. FM2 (WS 2014/15, Geck) 28 Formale Sprachen / Strukturelle Induktion Strukturelle Induktion: Beispiel R Korrektheitsbeweis (2/2): L(α) ⊆ L τ(α) Korrektheitsbeweis (Induktionsschritt) Induktionsschluss für α = β ◦ γ: R Wir zeigen L(α) ⊆ L τ(α) unter der Induktionsvoraussetzung • L(β) R ⊆ L τ(β) und R • L(γ) ⊆ L τ(γ) R Dazu zeigen wir für beliebiges w ∈ L(α) , dass auch w ∈ L τ(α) gilt: ⇒ ⇒ ⇒ ⇒ ⇒ ⇒ w = w1 . . . wn für n ∈ N und w1 , . . . , wn ∈ {0, 1} w = w1 . . . wn ∈ L(β ◦ γ R R w = wn . . . w1 ∈ L(β ◦ γ) wn . . . wi+1 ∈ L(β) und wi . . . w1 ∈ L(γ) für ein i ∈ {1, . . . , n} wi+1 . . . wn ∈ L(β) R und w1 . . . wi ∈ L(γ) R wi+1 . . . wn ∈ L τ(β) und w1 . . . wi ∈ L τ(γ) w = (w1 . . . wi ) ◦ (wi+1 . . . wn ) ∈ L τ(γ) ◦ L τ(β) (α = β ◦ γ) (Def. Rückwärtsoperator) (Def. Konkatenation) (Def. Rückwärtsoperator) (Induktionsvoraussetzung) (Def. Konkatenation) Wegen L τ(γ) ◦ L τ(β) = L τ(γ) ◦ τ(β) = L τ(β ◦ γ) = L τ(α) folgt daraus das Enthaltensein. Induktionsschluss für α = β + γ: Einfach (Übung). FM2 (WS 2014/15, Geck) 29