Formale Methoden 2 - LS1 - Logik in der Informatik

Werbung
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
Herunterladen