Automaten und Coinduktion

Ähnliche Dokumente
Theoretische Grundlagen der Informatik

Grundlagen der Theoretischen Informatik

Die Nerode-Relation und der Index einer Sprache L

Automaten und Formale Sprachen ε-automaten und Minimierung

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.

Skript und Übungen Teil II

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,

4. Übung zur Vorlesung Informatik III am

Theoretische Grundlagen der Informatik

Ein deterministischer endlicher Automat (DFA) kann als 5-Touple dargestellt werden:

Übung Theoretische Grundlagen

Satz von Kleene. (Stephen C. Kleene, ) Wiebke Petersen Einführung CL 2

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

Proseminar Analysis Vollständigkeit der reellen Zahlen

FORMALE SYSTEME. 8. Vorlesung: Minimale Automaten. TU Dresden, 6. November Markus Krötzsch Lehrstuhl Wissensbasierte Systeme

Die mathematische Seite

2.2 Reguläre Sprachen Endliche Automaten

Grundlagen der theoretischen Informatik

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit. Zugangsnummer: 3288

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004

Das Pumping-Lemma Formulierung

Topologische Grundbegriffe I. 1 Offene und Abgeschlossene Mengen

Einführung in die Computerlinguistik Satz von Kleene

Theorie der Informatik

Software Engineering Ergänzung zur Vorlesung

Kurz-Skript zur Theoretischen Informatik I

Automaten und formale Sprachen Klausurvorbereitung

Logische Grundlagen der Mathematik, WS 2014/15

Formale Sprachen und endliche Automaten

Automaten und Formale Sprachen SoSe 2007 in Trier. Henning Fernau Universität Trier

Induktive Definition

Freie Bäume und Wälder

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

4.2 Quotientenvektorräume

1. Klausur zur Vorlesung Informatik III Wintersemester 2004/2005

Einschub: Erkennung durch Monoide

Einführung in die Theoretische Informatik

Endliche Automaten, reguläre Ausdrücke, rechtslineare Grammatiken

Aufgabe Mögliche Punkte Erreichte Punkte a b c d Σ a b c d Σ x1 13

Einführung in die Theoretische Informatik

Seminar über Automatentheorie

Grundlagen der theoretischen Informatik

Algebra I. Prof. Dr. M. Rost. Übungen Blatt 5 (WS 2015/16) 1. Abgabetermin: Donnerstag, 26. November.

c) {abcde, abcfg, bcade, bcafg} d) {ade, afg, bcde, bcfg} c) {abcabc} d) {abcbc, abc, a} c) {aa, ab, ba, bb} d) {{aa}, {ab}, {ba}, {bb}}

Worterkennung in Texten speziell im Compilerbau 20. April Frank Heitmann 2/64

Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen

Einführung in die Algebra

11 Dezimalbruchdarstellung reeller Zahlen; Mächtigkeitsvergleich von Mengen

Übung: Teilmengen. Beweis: Für alle Elemente einer Menge, die Teilmenge einer Menge ist, gilt, dass auch Element von ist. (Definition der Teilmenge)

Automaten und Formale Sprachen SoSe 2013 in Trier

5. Ordinalzahlen (Vorlesung 11)

Elemente in Φ werden Wurzeln genannt. Bemerkung 3.2. (a) Zu einem Wurzelsystem können wir immer eine Spiegelungsgruppe definieren

2 Mengen und Abbildungen

Analysis 1, Woche 2. Reelle Zahlen. 2.1 Anordnung. Definition 2.1 Man nennt eine Anordnung für K, wenn: 1. Für jeden a K gilt a a (Reflexivität).

2. Übungsblatt 6.0 VU Theoretische Informatik und Logik

Der kleine Satz von Fermat

1 Der Satz von Poincaré-Birkhoff-Witt. 2 Die freie Algebra. 3 Die universell einhüllende Algebra

Endliche Automaten. δ : Z Σ Z die Überführungsfunktion, z 0 Z der Startzustand und F Z die Menge der Endzustände (Finalzustände).

Lineare Algebra 6. Übungsblatt

Kapitel 1. Grundlagen Mengen

5.2 Endliche Automaten

Einführung in die theoretische Informatik Sommersemester 2017 Übungsblatt Lösungsskizze 7

Die durch einen regulären Ausdruck beschriebene Sprache ist definiert durch:

Automaten und Formale Sprachen SoSe 2007 in Trier. Henning Fernau Universität Trier

Technische Universität München. Ferienkurs Lineare Algebra 1. Mengenlehre, Aussagen, Relationen und Funktionen. 21. März 2011.

Kapitel 1. Grundlagen

Übungsblatt 1: Monoide und Gruppen

technische universität dortmund Dortmund, im Dezember 2011 Fakultät für Mathematik Prof. Dr. H. M. Möller

Theoretische Informatik I

WS 2009/10. Diskrete Strukturen

I.2. Endliche Automaten (ohne Ausgabe)

Theoretische Grundlagen der Informatik

Formale Methoden 1. Gerhard Jäger 9. Januar Uni Bielefeld, WS 2007/2008 1/23

Theoretische Informatik Kap 1: Formale Sprachen/Automatentheorie

Einführung in die Theoretische Informatik

Denition 1 (Die Peanoschen Axiome). Es gibt eine Menge N und eine sogenannte Nachfolgefunktion S mit folgenden Eigenschaften.

Konstruktion reeller Zahlen aus rationalen Zahlen

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven

Zentralübung zur Vorlesung Theoretische Informatik

5.4 Endliche Automaten

Klausur zur Vorlesung Informatik III Wintersemester 2007/2008

Nachklausur zur Vorlesung Informatik 3 mit einigen Anmerkungen zu Lösungen

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie

Lineare Algebra I. Lösung 3.1:

Grundbegriffe der Informatik Tutorium 33

Inhalt der Vorlesung Elemente der Algebra und Zahlentheorie Prof. Dr. Arno Fehm TU Dresden SS Grundlegende Definitionen (Wiederholung)

Grenzen der Regularität

Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (ii) ε ist ein regulärer Ausdruck über Σ.

Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit. Zugangsnummer: 9201

Transkript:

Philipps-Univestität Marburg Fachbereich Mathematik und Informatik Seminar: Konzepte von Programmiersprachen Abgabedatum 02.12.03 Betreuer: Prof. Dr. H. P. Gumm Referentin: Olga Andriyenko Automaten und Coinduktion Basierend auf Automata and Coinduction von J.J.M.M. Rutten 1

Inhaltsverzeichnis: 1. Einführung 3 2. Deterministische Automaten 3 3. Sprachen 5 4. Reguläre Ausdrücke 5 5. Coinduktionsbeweisprinzip 6 6. Finalität und Minimalisierung 7 7. Kleen s Theorem 8 8. Nichtreguläre Sprachen 9 9. Coinduktives Definitionsprinzip 10 10. Schlussbemerkung 11 2

1 Einführung Die Kapitel 1 bis 4 beschäftigen sich mit deterministischen Automaten, regulären Sprachen und Ausdrücken. Es werden Begriffe aus der klassischen Theorie deterministischer Automaten, wie Homomorphismus und Bisimulation, erklärt. Es wird gezeigt, dass die Menge aller Sprachen über einen Alphabet Σ zu einem deterministischen Automaten konvertiert werden kann. Die Zustände dieses Automaten sind dann genau die Sprachen aus. Bei der Konstruktion des Sprachenautomaten spielt der Begriff der a-ableitung eine grundlegende Rolle. Der Sprachenautomat hat zwei wichtige Eigenschaften, nämlich 1) der Sprachenautomat ist ein finaler Automat; 2) zwei Zustände des Automaten sind genau dann gleich, wenn sie bisimilar zu einander sind. Die erste Eigenschaft spielt eine entscheidende Rolle bei der Formulierung und Verwendung von Kleene s Theorem in Kapitel 7 und des coinduktiven Definitionsprinzips in Kapitel 9. Auf der zweiten Eigenschaft basiert das in Kapitel 5 beschriebene Coinduktionsprinzip, mit dessen Hilfe zwei Sprachen auf Gleichheit geprüft werden können. 2 Deterministische Automaten Definition Sei Σ die Menge von Eingabesymbolen. Ein deterministischer Automat S über Σ wird durch ein 3-Tupel S = S, o, t spezifiziert. Hierbei sind: - S eine Menge von Zustände - o : S 2 = {0, 1} die Ausgabefunktion - δ : S x Σ S die Überführungsfunktion. Die Ausgabefunktion o gibt an, ob ein Zustand s S ein Endzustand ist (o(s) = 1, falls ja, o(s) = 0 sonst). Schreibweise: s falls o(s) = 1, s falls o(s) = 0, und s a s falls δ (s, a) = s. Im Gegensatz zu der Standarddefinition von deterministischen Automaten können bei obiger Definition die Mengen Σ und S unendlich groß sein. Ein weiterer Unterschied besteht darin, dass die oben definierten Automaten keinen Startzustand haben Definition: Seien S = S, o, δ und S = S, o, δ deterministische Automaten. Eine Relation R S S heißt Bisimulation, falls für alle a Σ, (s, s ) R gilt: i) o (s) = o' (s') ii) δ (s, ) R δ (s, ) für alle s S und Σ. Eine Bisimulation zwischen S und S heißt Bisimulation auf S. Schreibweise: s s, falls es eine Bisimulation R existiert, so dass s R s gilt. Die Bisimulationen sind unter Vereinigung und Komposition abgeschlossen. Die Relation ist die Vereinigung von allen Bisimulationen, und gleichzeitig die größte Bisimulation. Die größte Bisimulation auf einem und dem selben Automaten, wieder bezeichnet mit, heißt Bisimilarität. Diese ist eine Äquivalenzrelation. Definition: Seien S = S, o, δ und S = S, o, δ deterministische Automaten. Eine Funktion f : S S heißt Homomorphismus, falls gilt: s S : o (s) = o (f (s)) und a Σ : f (δ (s, a)) = δ (f (s), a). 3

Definition: Ein Automat S = S, o, δ heißt ein Subautomat von S = S, o, δ, falls gilt: - S S und - die Inklusionsfunktion i : S S ist ein Homomorphismus. Für einen Zustand s S bezeichnet s den durch s erzeugten Subautomaten von S. Es gilt: <s> = {s S =w Σ* : s a1 s 1 a2... an s } und <s> ist der kleinste Subautomat von S, der s enthält. Sei f : S T Homomorphismus und S S ein Subautomat von S, dann ist f(s ) ein Subautomat von T. Für jedes s S gilt: f (s) = f (s). Die Begriffe Automat, Homomorphismus und Bisimulation sind eng verbunden. Jede Bisimulation ist selber ein Automat: sei R S S eine Bisimulation, dann ist R, o R, δ R mit: - o R ((s, s )) = o (s) = o (s ) und - δ R ((s, s ), a) = (δ (s, a), δ (s, a)) ein deterministischer Automat. Satz 1: Eine Funktion f : S S ist genau dann ein Homomorphismus, wenn ihre Graph- Relation { (s, f (s)) s S} eine Bisimulation ist. Beweis: : f Homomorphismus, dann für alle a Σ, s S gilt: ( o (s) = o (f (s)) und f (δ (s, a)) = δ (f (s), a) ) Also für alle a Σ, (s, f (s)) R gilt: ( o (s) = o (f (s)) und o (δ (s, a)) = o (f (δ (s, a)) = o (δ (f (s), a)) ) ( o (s) = o (f (s)) und o (δ (s, a)) = o (δ (f (s), a)) ) ( o (s) = o (f (s)) und δ (s, a) R δ (f (s), a) ) R Bisimulation : Sei R = { (s, f (s)) s S} eine Bisimulation, definieren wir noch zwei Abbildungen: π 1 : R S mit π 1 ( (s, f (s)) ) = s (s, f (s) ) R und π 2 : R S mit π 2 ( (s, f (s)) ) = f(s) (s, f (s) ) R. Die Abbildung π 1 ist bijektiv, folglich existiert eine inverse Abbildung π -1 1 : S R, die auch bijektiv ist. Weiter zeigen wir, dass π -1 1 ein Homomorphismus ist: s S : o R ((s, f(s))) = o (s) = o (f (s)) und -1-1 a Σ : π 1 (δ (s, a)) = ( δ (s, a), f (δ (s, a)) ) = δ R ((s, f (s)), a) = δ R (π 1 (s), a). Ähnlich kann gezeigt werden, dass π 2 auch ein Homomorphismus ist: (s, f (s)) R : o R ((s, f(s))) = o (s) = o (f (s)) und a Σ : π 2 (δ R ((s, f (s)), a) = π 2 (δ (s, a), δ (f (s), a)) = δ (f (s), a) = δ (π 2 (s, f (s)), a). Es gilt : f = π 2 π -1 1, also ist f ein Homomorphismus Beispiel: Sei Σ = {a, b} der Eingabealphabet, S = {s 1, s 2, s 3 } und T = {t 1, t 2 } die Automaten mit: b s 1 s 2 s 3 s 2 s 2 s 3 s 3 s 2 s 3 b t 1 t 2 t 2 t 2 t 2 t 2 Dann gilt: {s 1, s 1, s 2, s 2, s 3, s 3} und {s 2, s 3, s 2, s 2, s 3, s 3} sind Bisimulationen auf S; {s 2, s 3 } = s 2 = s 3 ist ein Subautomat von S; und f : S 9 T mit f (s 1 ) = t 1 und f (s 2 ) = f (s 3 ) = t 2 ist ein Homomorphismus. 4

3 Sprachen Definition: Sei Σ* die Menge aller endlichen Wörter über Σ. Eine Sprache ist jede Teilmenge von Σ*. Seien K, L Sprachen, dann gelten folgende regulären Operatoren: K + L = K L KL = {vw v K, und w L} K* = K n, mit K 0 = {} und K n+1 = KK n. n 1 Definition: Sei Σ* die Menge aller endlichen Wörter über Σ, sei S = S, o, δ ein Automat und s ein beliebiger Zustand aus S. Dann heißt l S (s) = { s a1 s 1 a2... an sn } Σ* die durch s akzeptierte Sprache. Definition: Seien = { L L Σ*} die Menge aller Sprachen über Σ* und w Σ*. Dann heißt L w = { v Σ* wv L} die w-ableitung von L. Ein Spezialfall davon ist die a-ableitung von L: für ein Σ ist L a = {v Σ* v L}. Die a-ableitung wird bei der Konstruktion von Sprachenautomaten o, δ benutzt, wobei die Menge aller Sprachen über Σ* ist. Der Automat wird folgendermaßen definiert: - o (L 1, 8 L = 0, sonst - δ (L, a) = L a, für L a Σ. Es gilt: L L, und L a L L = L a. Dieser Automat hat folgende Eigenschaft: die durch ein Zustand L akzeptierte Sprache, ist genau die Sprache L selbst. Diese Aussage wird erst im Kapitel 6 bewiesen, kann aber jetzt durch folgenden Beispiel verdeutlicht werden. Beispiel: Sei L = {a, ab, ac} eine Sprache aus, dann ist <L> = { {a, b, ac}, { c}, {<}mit folgenden Transitionen: - {a, b, ac} a { c} c {<, - {a, b, ac} b {< ein Subautomat von. Nach Definition enthält die Sprache l nur die Wörter a, b und ac. Also giltt: l (L) = L. 4 Reguläre Ausdrücke Definition: Sei die Menge der regulären Ausdrücken, gegeben durch folgende Regel: E::= 0 1 Σ E + F EF E* Sei : die Funktion, die einen Ausdruck E auf die Sprache (E), die er beschreibt, abbildet. Die Funktion wird induktiv über die Aufbau von E definiert: ( 0 ) = 1 ) =! " # ( $ ) = { $ } # ( E + F ) = # ( E ) + # ( F ) 5

( EF ) = ( E ) ( F ) E* ) = ( ( E ))*. Dann heißen die Sprachen L = (E) reguläre Sprachen. Schreibweise: E statt (E), folglich 0, 1 und statt, und {, }. Folgenden Regeln gelten für die a-ableitung L von einer Sprache L: 0 = 0 1 = 0 1, falls b = a b = 0, sonst (K + L) = K + L (KL) = K L falls K K L + L falls K (K*) = K K* Es gelten auch folgende Terminierungsregeln: 0, 1,, (K + L) (K oder L ), KL (K und L ), K*. 5 Coinduktionsbeweisprinzip Satz 2: Für alle Sprachen K, L, die durch den Automaten = o, δ akzeptiert werden, gilt: K L K = L. Beweis: : Man zeigt mit der Induktion über die Länge n eines Wortes w aus K: K ~ L K L. n = 0: ε K K L ε L. n n+1: w = aw, w = n+1, w = n ( K ~ L K a ~ L a ) ( w K a w L a ) [nach I.V.] ( w K w L ) Es gilt also: K ~ L K L und da die Bisimulation ~ eine Äquivalenzrelation ist, gilt auch K L L K L K, also folgt K ~ L K = L. : gilt trivial. Auf der obigen Eigenschaft basiert folgendes Coinduktionsbeweisprinzip: um zwei Sprachen K, L auf Gleichheit zu prüfen, reicht es zu zeigen, dass eine Bisimulationsrelation auf existiert, die das Tupel (K, L) enthält. Das Coinduktionsbeweisprinzip hat immer die gleiche Vorgehenswiese: es wird eine Relation definiert, die zuerst nur die Tupeln von Sprachen enthält, die man auf Gleichheit prüfen möchte; dann geht man alle möglichen Transitionen durch und führt die resultierenden Tupeln von Sprachen hinzu, falls diese nicht bereits vorhanden sind. Die Gleichheit gilt genau dann, wenn die auf diese Weise konstruierte Relation eine Bisimulation ist. Für die regulären Sprachen ist der Beweis durch Coinduktion besonders effektiv. Falls die Eingabesprachen regulär sind, wird die Konstruktion von Bisimulationrelation nach endlich vielen Schritten terminieren. Der Beweis folgt später. Beispiele: 1) Zu zeigen: K + L = L + K 6

Sei R = { ( K + L, L + K ) K, L } eine Relation. Es gilt: - (K + L ) (L + K ) - a Σ: ( K + L) a = ( K a + L a ) R ( L a + K a ) = (L + K) a. R ist eine Bisimulation. Es folgt mit Coinduktion, dass die Gleichheit gilt. 2) Zu zeigen: K (L + M) = KL + KM Voraussetzung: Assoziativität und Kommutativität gelten. Betrachte die Relation { ( K (L + M ), K L + K M ) K, L, M }. Da die für die a-ableitungen von den obigen Sprachen im Falle K gilt: (K (L + M ) ) a = K a (L + M ) + (L + M ) a = K a (L + M ) + L a + M a und (K L + K M ) a = (K L ) a + (K M ) a = K a L + L a + K a M + M a, ist es sinnvoll eine größere Relation R = { ( (K + M ) + N, K L + K M +N ) K, L, M, N } zu wählen. Wir zeigen, dass R eine Bisimulation ist: - (K (L + M ) + N) (K L + K M +N) - 1. Fall: K (K (L + M ) + N) = (K (L + M )) a + N = K a (L + M ) + L a + M a + N R K L + K M + L + M + N = K L + L + K M + M + N = (K L ) + (K M ) + N = (K L + K M +N) - 2. Fall: K (K (L + M ) + N) = (K (L + M )) a + N = K a (L + M ) + N R K L + K M + N = (K L ) + (K M ) + N = (K L + K M +N) R ist eine Bisimulation. Und es folgt mit Coinduktion, dass die Gleichheit K (L + M) + N = KL + KM +N für beliebige Sprachen K, L, M, N aus gilt. Wir setzen nun N = und erhalten das gewünschte Ergebnis. 6 Finalität und Minimalisierung Mittels Coinduktion kann gezeigt werden, dass der Automat ein finaler Automat ist. Satz 3: Für jeden Automat S = S, o, δ existiert genau ein Homomorphismus S. Beweis: - Existenz: Die Funktion l S : S, die einen Zustand auf die Sprache, die er akzeptiert abbildet, ist ein Homomorphismus, da gilt: i) s ε l S (s) l S (s) ii) δ (l S (s), a) = ( l S (s) ) a = l S (δ S (s, a)), (gilt da S ein deterministischer Automat ist) - Eindeutigkeit: Seien f, g : S Homomorphismen. Sei R = { ( f (s), g (s) ), s S} eine Relation. Da f und g Homomorhismen, gilt: i) s S : ( o S (s) = o (f (s)) o S (s) = o (g (s) ) 7

ii) a Σ : ( f (δ S (s, a)) = δ (f (s), a) g (δ S (s, a)) = δ (g (s), a) ). Also gilt: i) s S : ( o (f (s)) = o (g (s) ) ii) a Σ : ( δ (f (s), a) = f (δ S (s, a)) R g (δ S (s, a)) = δ (g (s), a) ). Damit ist R eine Bisimulation und es folgt mit Coinduktion: f = g. Mittels eindeutigen Homomorphismus l S : S kann man Paare von bisimilaren Zuständen aus S feststellen. Satz: Sei S = S, o, δ ein Automat und l S : S der eindeutige Homomorphismus, dann gilt: s, s S : s ~ s l S (s) = l S (s ). Beweis: : R = { ( l S (s), l S (s ) ) s ~ s, s, s S } ist eine Relation auf. Wir zeigen, dass R eine Bisimulation ist. Es gilt: - s ~ s (s s ) ( ε l S (s) ε l S (s ) ) ( l S (s) l S (s ) ); - δ (l S (s), a) = l S (δ S (s, a)) R l S (δ S (s, a)) = δ (l S (s ), a). Also ist R eine Bisimulation und mit Coinduktion folgt: l S (s) = l S (s ). : Sei R = {( s, s ) l S (s) = l S (s ) } eine Relation auf S, dann gilt: - ( l S (s) = l S (s ) ) ( ε l S (s) ε l S (s ) ) (s s ); - ( l S (s) = l S (s ) ) ( l S (δ S (s, a)) = l S (δ S (s, a)) ) (δ S (s, a) R δ S (s, a) ). Also ist R eine Bisimulation auf S. Aus der Finalität von folgt, dass die Identitätsfunktion l : der einzige Homomorphismus auf ist. Dann ist nach dem Satz1 die Graph-Relation von l eine Bisimulation. Mit Coinduktion bekommen wir l (L) = L für alle L. Also ist die Sprache, die durch ein Zustand L aus akzeptiert wird, L selber. Der Subautomat <L> = {L w w Σ*} ist außerdem ein minimaler Automat für L im folgenden Sinn. Sei S = S, o, δ ein Automat und s S ein Zustand, für den gilt: l S (s) = L. Da l S ein Homomorphismus ist, gilt: l S (<s>) = < l S (s)> = <L>. Dann enthält <L> höchstens so viele Elemente, wie die Zustandsmenge S. Da S und s beliebig waren, ist <L> minimal. Es folgt, dass für jeden Automat S und jeden Zustand s S, der Automat < l S (s) > die Minimalisierung von dem Automaten <s> ist. Außerdem gilt: L wird durch endlichen Automaten akzeptiert <L> ist endlicher Subautomat von. Begründung: Ist <L> ein unendlicher Subautomat von, dann folgt aus der Minimalität von <L>, dass der Automat, der die Sprache L erkennt auch nicht endlich ist. Und umgekehrt, wird die Sprache L durch einen nicht endlichen Automaten <s> akzeptiert, so ist <L>=<l S (s)> = l S (<s>) ein nicht endlicher Subautomat von. Das ist äquivalent zum folgenden klassischen Myhill/Nerode Theorem: L wird durch endlichen Automaten akzeptiert Index R L endlich. Wobei R L eine Äquivalenzrelation auf Σ*, die wie folgt definiert ist: v, w Σ* : v R L w ( u Σ*, vu L wu L), und Index von R L wird definiert als die Anzahl von Äquivalenzklassen von R L. Die Äquivalenz von den obigen Aussagen folgt aus der Bijektivität von der Abbildung ϕ : Äquivalenzklassen von R L Elemente von L 8

[w]rl L w, für w aus Σ*. Da für v und w Σ*, gilt: [v] RL = [w] RL v R L w ( u Σ*, vu L wu L ) ( u Σ*, u L v u L w ) L v = L w. 7 Kleene s Theorem Laut Kleene s Theorem ist eine Sprache dann und nur dann regulär, wenn sie durch einen endlichen Automaten erkannt werden kann. Also kann man jetzt das Kleene s Theorem wie folgt umformulieren. Kleene s Theorem: Sei Σ endlich. Für jede Sprache L Σ* gilt: (19) L regulär < L > endlicher Subautomat von. Als Korollar zur Kleene s Theorem wird unten gezeigt, dass Coinduktionsbeweisprinzip effektiv auf reguläre Sprachen anwendbar ist. Beweis: Nach Definition von regulären Sprachen gilt: L regulär E : (E) = L. : (Induktion über die Struktur von E) I.A.: E = 0 ( E ) = #< > = 1 < E = 1 ( E ) = {ε} #<{ε}> = 1 < E = a Σ ( E ) = {a} #<{a}> = 2 < I.V.: Für die Ausdrücke E mit # ( E ) = m 1 gilt: ( E ) regulär < ( E ) > endlicher Subautomat von. I.S.: # ( E ) = m +1. 1. Fall: E = S + T (S + T) = ( S ) + ( T ). Im allgemeinen Fall ist aus dem Zustand (S + T) nur ein Zustand der Form (S) w + (T) w für jedes w Σ* erreichbar. Daraus folgt: < (S + T) > {K + M K < (S)>, M < (T)>} =: F. Nach I.V. sind < ( S ) > und < ( T ) > endliche Subautomaten, also ist F eine endliche Menge, dann ist < ( S + T ) > ein endlicher Subautomat. von. 2. Fall: E = ST (ST) = ( S ) ( T ). Sei w = a 1... a n ein beliebiges Wort aus Σ*. Im allgemeinen Fall ist aus dem Zustand (ST) nur ein Zustand der Form (S) w (T) + 1 +... + n erreichbar, wobei i =, falls (S)a 1 a i = (T)a i a n, sonst, für alle i [1, n]. Daraus folgt: 9

< (ST) > { K M 1 + M 2 +...+ M k K < (S)>, M 1, M 2,..., M k < (T)>, k = #< (T)> } =: F. Nach I.V. sind < ( S ) > und < ( T ) > endliche Subautomaten, also ist F eine endliche Menge, dann ist < (ST)> ein endlicher Subautomat von. 3. Fall: E = S* (S*) = (S)*.... Sei w = a 1 a n ein beliebiges Wort aus Σ*. Im allgemeinen Fall ist aus dem Zustand (S*) nur ein Zustand der Form (S) w (T) + 1 +... + n-1 erreichbar, wobei i =, falls (S)a 1 a i (S)a 2 a i... (S)a i = (S)a i a n (S*), sonst, für alle i [1, n-1]. Daraus folgt: < (S*) > { K 1 (S*) + K 2 (S*) +...+ K k (S*) K 1, K 2,..., K k < (S)>, k = #< (S)> } =: F. Nach I.V. ist < ( S ) > endlicher Subautomat, also ist F eine endliche Menge, dann ist < (S*) > ein endlicher Subautomat von. : bekannt aus der Vorlesung zur Theoretischen Informatik. Korollar: der Beweis durch Coinduktion ist für reguläre Sprachen effektiv. Begründung: Seien (E) und (F) reguläre Sprachen. Da < (E) > und < (F) > endliche Subautomaten von sind, gilt: nach endlich vielen Schritten wird entweder eine Bisimulation R mit < (E), (F)> konstruiert (also ( E ) = ( F)), oder steht fest, dass keine solche Bisimulation existiert (also ( E ) ( F )). 8 Nichtreguläre Sprachen Das im Kapitel 7 formulierte Kleene s Theorem kann benutzt werden, um zu beweisen, dass eine Sprache L nichtregulär ist. Dafür reicht es zu zeigen, dass <L> nicht endlich ist. Diese Methode ist äquivalent zu dem traditionellem Beweis, bei dem geprüft wird, ob der Index R L endlich ist. Weiter wird die neue Methode an zwei klassischen Beispiele angewandt. Es wird dabei folgende Abkürzung benutzt: für eine Sprache K und k 0 bezeichnet K k : = K a k die Sprache bzw. den Zustand der nach k-vielen a-transitionen erreicht wurde, Beispiel 1: Sei L = {a n b n n 0 }. Dann ist L k = {a n-k b n n k} und es gilt: L k L m, falls k m. Daraus folgt, dass <L> nicht endlich ist, also L nichtregulär. Beispiel 2: Sei M = {w Σ* # a (w) = # b (w)}. Alle Sprachen M k sind verschieden, weil für alle n und k gilt: b n M k k = n. Also <M> nicht endlich ist, also M nichtregulär. Beispiel 3: Sei N = {a n 2 n 0 }. Es gilt: für alle n ist die Länge von kleinstem Wort aus N n 2 + 1 2 2 ( n a + 1) - n - 1 = a 2n = 2n. Also N n 2 und N m 2 sind verschieden, fall n m gilt. Folgt N ist nicht endlich, also N nichtregulär. 10

9 Coinduktives Definitionsprinzip Ausgehend aus der Finalität von kann man die Sprachen aus coinduktiv definieren. Coinduktives Definitionsprinzip: Sei S eine Menge. Um eine Funktion S zu definieren, wird die Menge S, durch die Angabe einer Ausgabefunktion o und einer Transitionsfunktion δ, zu einem Automaten S = S, o, δ konvertiert. Dann ist die gesuchte Funktion, die Funktion l S : S, die gleichzeitig ein eindeutiger Homomorphismus zwischen S und ist. Der Vorteil von coinduktiver Definition gegenüber der induktiver Definition wird an folgendem Beispiel verdeutlicht. Beispiel: Mischung von zwei Sprachen. Induktiv wird die Mischung zweier Sprachen wie folgt definiert: seien K, L, dann gilt: K L = v w, mit : - v w = v w w v - ε v = { v } - ( av ) w = a ( v w ) Um K L coinduktiv definieren zu können, betrachten wir die Menge von Ausdrücken E, die durch folgende Regeln gegeben sind: E ::= L (L ) E + F E F. Man kann die Menge zu einem Automaten <, o, δ > konvertieren, dessen Ausgabeund Überführungsfunktion wie folgt gegeben sind: L ε L, (E + F) (E oder F ), (E F) (E und F ) L La,, + + + Nach dem coinduktiven Definitionsprinzip existiert ein eindeutiger Homomorphismus l:, der jeden Ausdruck E auf die Sprache, die er beschreibt, abbildet. Die Mischung zweier Sprachen K, L kann jetzt coinduktiv definiert werden: K L = l (K L). Die a-ableitung von der Sprache K L kann jetzt wie folgt berechnet werden: (K L) a = (l (K L)) a = δ (l (K L), a) = l (δ (K L, a)) [da l Homomorphismus] = l (Ka L + K La) [nach Definition von δ] = Ka L + K La [da final] = l (Ka L) + l (K La) = K a L + K L a Jetzt kann man leicht mit Coinduktion nachweisen, dass die Mischung zweier Sprachen beispielsweise assoziativ ist, also dass K (L M) = (K L) M gilt. Ausgehend aus induktiver Definition wäre der Beweis von Assoziativität dagegen sehr aufwendig. 11

10 Schlussbemerkung Die meist verbreitete Methode um zwei Ausdrücke auf Gleichheit zu prüfen beinhaltet folgende Schritte. Erstens wird zu jedem Ausdruck ein Automat konstruiert, der genau die Sprache akzeptiert, die durch den Ausdruck beschrieben wird. Danach werden die beiden Automaten minimiert. Die Gleichheit von den Ausdrücken gilt genau dann, wenn die resultierenden Automaten isomorph zu einander sind. In dem Kapitel 5 wurde gezeigt, wie man die Gleichheit von zwei Ausdrücken bzw. Sprachen mit Coinduktion beweisen kann. Dieses Prinzip hat den Vorteil, dass man nur mit einem Automaten für beide Ausdrücke auskommt. Außerdem braucht der Automat nicht minimiert zu werden. Eine wichtige Rolle spielt auch das coinduktive Definitionsprinzip, da die auf diese Weise definierten Sprachen besonders effektiv mit Coinduktion auf Gleichheit geprüft werden können, wie man das an dem Beispiel im Kapitel 9 sehen konnte. Das im Kapitel 7 formulierte Kleene s Theorem bietet eine alternative zum Nachweis durch das Pumping Lemma Methode an, mit der gezeigt werden kann, dass gewisse Sprachen nicht regulär sind. 12