20.07.2013 Aufrufe

Grundbegriffe der Informatik - Einheit 4: Wörter (und vollständige ...

Grundbegriffe der Informatik - Einheit 4: Wörter (und vollständige ...

Grundbegriffe der Informatik - Einheit 4: Wörter (und vollständige ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Gr<strong>und</strong>begriffe</strong> <strong>der</strong> <strong>Informatik</strong><br />

<strong>Einheit</strong> 4: <strong>Wörter</strong><br />

(<strong>und</strong> <strong>vollständige</strong> Induktion)<br />

Thomas Worsch<br />

Universität Karlsruhe, Fakultät für <strong>Informatik</strong><br />

Oktober 2008<br />

1/29


Überblick<br />

<strong>Wörter</strong><br />

<strong>Wörter</strong><br />

Das leere Wort<br />

Mehr zu <strong>Wörter</strong>n<br />

Konkatenation von <strong>Wörter</strong>n<br />

Konkatenation mit dem leeren Wort<br />

Eigenschaften <strong>der</strong> Konkatenation<br />

Iterierte Konkatenation<br />

Vollständige Induktion<br />

Binäre Operationen<br />

Inhalt 2/29


<strong>Wörter</strong><br />

Ein Wort über einem Alphabet A ist eine Folge von Zeichen aus A.<br />

Apfelmus<br />

<strong>Wörter</strong> 3/29


<strong>Wörter</strong><br />

Ein Wort über einem Alphabet A ist eine Folge von Zeichen aus A.<br />

Milchreis<br />

Symbole dürfen mehrfach vorkommen.<br />

<strong>Wörter</strong> 3/29


Das Leerzeichen<br />

◮ man benutzt es heutzutage (jedenfalls z. B. in europäischen<br />

Schriften) ständig, aber<br />

◮ früher nicht!<br />

◮ Für uns ist es ein Zeichen wie alle an<strong>der</strong>en auch;<br />

<strong>der</strong> Deutlichkeit wegen manchmal explizit geschrieben.<br />

◮ Folge: z. B. Hallo Welt ist eine Folge von Zeichen,<br />

also nur ein Wort (<strong>und</strong> nicht zwei)<br />

<strong>Wörter</strong> <strong>Wörter</strong> 4/29


Eine formale Definition von <strong>Wörter</strong>n<br />

◮ Sinn <strong>der</strong> Übung<br />

◮ an harmlosem Beispiel Dinge üben, die später wichtig werden<br />

◮ aber nicht: eine einfache Sache möglichst kompliziert<br />

darzustellen<br />

◮ das Wesentliche an einer ” Folge“ o<strong>der</strong> ” Liste“ (von Zeichen)?<br />

◮ Reihenfolge<br />

M i l c h r e i s<br />

◮ definiere für jede natürliche Zahl n ≥ 0 die Menge <strong>der</strong> n<br />

kleinsten nichtnegativen ganzen Zahlen<br />

n = {i ∈ 0 | 0 ≤ i ∧ i < n}<br />

◮ Beispiele: 4 = {0, 1, 2, 3}, 1 = {0} <strong>und</strong> 0 = {}<br />

<strong>Wörter</strong> <strong>Wörter</strong> 5/29


Eine formale Definition von <strong>Wörter</strong>n<br />

◮ Sinn <strong>der</strong> Übung<br />

◮ an harmlosem Beispiel Dinge üben, die später wichtig werden<br />

◮ aber nicht: eine einfache Sache möglichst kompliziert<br />

darzustellen<br />

◮ das Wesentliche an einer ” Folge“ o<strong>der</strong> ” Liste“ (von Zeichen)?<br />

◮ Reihenfolge; deutlich gemacht z. B. durch Nummerierung:<br />

0 1 2 3 4 5 6 7 8<br />

M i l c h r e i s<br />

◮ definiere für jede natürliche Zahl n ≥ 0 die Menge <strong>der</strong> n<br />

kleinsten nichtnegativen ganzen Zahlen<br />

n = {i ∈ 0 | 0 ≤ i ∧ i < n}<br />

◮ Beispiele: 4 = {0, 1, 2, 3}, 1 = {0} <strong>und</strong> 0 = {}<br />

<strong>Wörter</strong> <strong>Wörter</strong> 5/29


Eine formale Definition von <strong>Wörter</strong>n<br />

◮ Ein Wort ist eine surjektive Abbildung w : n → A.<br />

◮ n heißt die Länge eines Wortes, geschrieben |w|<br />

<strong>Wörter</strong> <strong>Wörter</strong> 6/29


Eine formale Definition von <strong>Wörter</strong>n<br />

◮ Ein Wort ist eine surjektive Abbildung w : n → A.<br />

◮ n heißt die Länge eines Wortes, geschrieben |w|<br />

◮ Sie denken erst einmal an Wortlängen n ≥ 1?<br />

◮ ist in Ordnung<br />

◮ den Fall des sogenannten leeren Wortes ε mit Länge n = 0<br />

betrachten wir gleich noch<br />

◮ Beispiel:<br />

◮ Wort w = hallo wird<br />

◮ formal zur Abbildung w : 5 → {a, h, l, o} mit<br />

w(0) = h, w(1) = a, w(2) = l, w(3) = l <strong>und</strong> w(4) = o.<br />

◮ Ist das umständlich!<br />

◮ ja, aber<br />

◮ manchmal formalistische Auffassung <strong>Wörter</strong>n vorteilhaft<br />

◮ manchmal vertraute Auffassung <strong>Wörter</strong>n vorteilhaft<br />

◮ wir wechseln hin <strong>und</strong> her<br />

<strong>Wörter</strong> <strong>Wörter</strong> 6/29


Menge aller <strong>Wörter</strong><br />

◮ A ∗ : Menge aller <strong>Wörter</strong> über einem Alphabet A:<br />

alle <strong>Wörter</strong>, die nur Zeichen aus A enthalten<br />

<strong>Wörter</strong> <strong>Wörter</strong> 7/29


Menge aller <strong>Wörter</strong><br />

◮ A ∗ : Menge aller <strong>Wörter</strong> über einem Alphabet A:<br />

alle <strong>Wörter</strong>, die nur Zeichen aus A enthalten<br />

◮ Beispiel: A = {a, b}.<br />

Dann enthält A ∗ zum Beispiel die <strong>Wörter</strong><br />

<strong>Wörter</strong> <strong>Wörter</strong> 7/29


Menge aller <strong>Wörter</strong><br />

◮ A ∗ : Menge aller <strong>Wörter</strong> über einem Alphabet A:<br />

alle <strong>Wörter</strong>, die nur Zeichen aus A enthalten<br />

◮ Beispiel: A = {a, b}.<br />

Dann enthält A ∗ zum Beispiel die <strong>Wörter</strong><br />

◮ a, b<br />

<strong>Wörter</strong> <strong>Wörter</strong> 7/29


Menge aller <strong>Wörter</strong><br />

◮ A ∗ : Menge aller <strong>Wörter</strong> über einem Alphabet A:<br />

alle <strong>Wörter</strong>, die nur Zeichen aus A enthalten<br />

◮ Beispiel: A = {a, b}.<br />

Dann enthält A ∗ zum Beispiel die <strong>Wörter</strong><br />

◮ a, b<br />

◮ aa, ab, ba, bb<br />

<strong>Wörter</strong> <strong>Wörter</strong> 7/29


Menge aller <strong>Wörter</strong><br />

◮ A ∗ : Menge aller <strong>Wörter</strong> über einem Alphabet A:<br />

alle <strong>Wörter</strong>, die nur Zeichen aus A enthalten<br />

◮ Beispiel: A = {a, b}.<br />

Dann enthält A ∗ zum Beispiel die <strong>Wörter</strong><br />

◮ a, b<br />

◮ aa, ab, ba, bb<br />

◮ aaa, aab, aba, abb, baa, bab, bba, bbb<br />

<strong>Wörter</strong> <strong>Wörter</strong> 7/29


Menge aller <strong>Wörter</strong><br />

◮ A ∗ : Menge aller <strong>Wörter</strong> über einem Alphabet A:<br />

alle <strong>Wörter</strong>, die nur Zeichen aus A enthalten<br />

◮ Beispiel: A = {a, b}.<br />

Dann enthält A ∗ zum Beispiel die <strong>Wörter</strong><br />

◮ a, b<br />

◮ aa, ab, ba, bb<br />

◮ aaa, aab, aba, abb, baa, bab, bba, bbb<br />

◮ <strong>und</strong> so weiter<br />

<strong>Wörter</strong> <strong>Wörter</strong> 7/29


Menge aller <strong>Wörter</strong><br />

◮ A ∗ : Menge aller <strong>Wörter</strong> über einem Alphabet A:<br />

alle <strong>Wörter</strong>, die nur Zeichen aus A enthalten<br />

◮ Beispiel: A = {a, b}.<br />

Dann enthält A ∗ zum Beispiel die <strong>Wörter</strong><br />

◮ a, b<br />

◮ aa, ab, ba, bb<br />

◮ aaa, aab, aba, abb, baa, bab, bba, bbb<br />

◮ <strong>und</strong> so weiter<br />

◮ <strong>und</strong> außerdem ε<br />

dieses merkwürdige (?) leere Wort (kommt gleich)<br />

<strong>Wörter</strong> <strong>Wörter</strong> 7/29


Menge aller <strong>Wörter</strong><br />

◮ A ∗ : Menge aller <strong>Wörter</strong> über einem Alphabet A:<br />

alle <strong>Wörter</strong>, die nur Zeichen aus A enthalten<br />

◮ Beispiel: A = {a, b}.<br />

Dann enthält A ∗ zum Beispiel die <strong>Wörter</strong><br />

◮ a, b<br />

◮ aa, ab, ba, bb<br />

◮ aaa, aab, aba, abb, baa, bab, bba, bbb<br />

◮ <strong>und</strong> so weiter<br />

◮ <strong>und</strong> außerdem ε<br />

dieses merkwürdige (?) leere Wort (kommt gleich)<br />

◮ Beachte: es gibt unendlich viele <strong>Wörter</strong><br />

die aber alle endliche Länge haben!<br />

<strong>Wörter</strong> <strong>Wörter</strong> 7/29


Menge aller <strong>Wörter</strong><br />

◮ A ∗ : Menge aller <strong>Wörter</strong> über einem Alphabet A:<br />

alle <strong>Wörter</strong>, die nur Zeichen aus A enthalten<br />

◮ Beispiel: A = {a, b}.<br />

Dann enthält A ∗ zum Beispiel die <strong>Wörter</strong><br />

◮ a, b<br />

◮ aa, ab, ba, bb<br />

◮ aaa, aab, aba, abb, baa, bab, bba, bbb<br />

◮ <strong>und</strong> so weiter<br />

◮ <strong>und</strong> außerdem ε<br />

dieses merkwürdige (?) leere Wort (kommt gleich)<br />

◮ Beachte: es gibt unendlich viele <strong>Wörter</strong><br />

die aber alle endliche Länge haben!<br />

◮ A ∗ formalistisch: die Menge aller surjektiven Abbildungen<br />

w : n → B mit n ∈ 0 <strong>und</strong> B ⊆ A.<br />

<strong>Wörter</strong> <strong>Wörter</strong> 7/29


Das leere Wort<br />

◮ Zählen<br />

◮ man fängt erst mal mit eins an<br />

◮ später: oh, die Null ist auch nützlich<br />

◮ Analogon bei <strong>Wörter</strong>n: das leere Wort<br />

◮ Es besteht aus 0 Symbolen. Deshalb ” sieht man es so<br />

schlecht“.<br />

◮ Damit man es nicht übersieht, schreiben wir ε dafür<br />

◮ erfor<strong>der</strong>t ein bisschen Abstraktionsvermögen<br />

◮ vielleicht hilft die formalistische Definition:<br />

ε : 0 → {} also ε : {} → {}<br />

◮ Stört Sie <strong>der</strong> leere Definitionsbereich o<strong>der</strong>/<strong>und</strong> <strong>der</strong> Zielbereich?<br />

◮ Denken Sie an Abbildungen als spezielle Relationen<br />

◮ Es gibt nur eine Relation R ⊆ {} × {} = {}, nämlich R = {}.<br />

◮ Sie ist linkstotal <strong>und</strong> rechtseindeutig, also Abbildung<br />

◮ <strong>und</strong> sogar rechtstotal, also surjektiv.<br />

◮ Also ist es richtig von dem leeren Wort zu sprechen.<br />

<strong>Wörter</strong> Das leere Wort 8/29


Das leere Wort als Element von Mengen<br />

◮ Das leere Wort ist ” etwas“.<br />

◮ Die Kardinalität <strong>der</strong> Menge {ε, abaa, bbbababb} ist<br />

|{ε, abaa, bbbababb}| = 3<br />

◮ Die Kardinalität <strong>der</strong> Menge {ε} ist<br />

Das ist nicht die leere Menge!<br />

|{ε}| = 1<br />

◮ Die Kardinalität <strong>der</strong> Menge {} ist<br />

Das ist die leere Menge.<br />

|{}| = 0<br />

<strong>Wörter</strong> Das leere Wort 9/29


<strong>Wörter</strong> einer festen Länge n<br />

◮ A n : Menge aller <strong>Wörter</strong> <strong>der</strong> Länge n über dem Alphabet A<br />

◮ Beispiel: Ist A = {a, b}, dann ist<br />

A 0 = {ε}<br />

A 1 = {a, b}<br />

◮ Also ist sozusagen<br />

A 2 = {aa, ab, ba, bb}<br />

A 3 = {aaa, aab, aba, abb, baa, bab, bba, bbb}<br />

A ∗ = A 0 ∪ A 1 ∪ A 2 ∪ A 3 ∪ · · ·<br />

aber diese Pünktchen sind nicht schön . . .<br />

◮ Bessere Schreibweise:<br />

A ∗ ∞<br />

= A i<br />

i=0<br />

<strong>Wörter</strong> Mehr zu <strong>Wörter</strong>n 10/29


immer diese Pünktchen . . .<br />

◮ berechtigte Frage: Was soll denn<br />

genau bedeuten?<br />

◮ Das hier:<br />

∞<br />

i=0<br />

Mi<br />

∞<br />

Mi = {x | ∃i : x ∈ Mi}<br />

i=0<br />

also alle Elemente, die in mindestens einem Mi enthalten sind.<br />

◮ Das ∞-Zeichen in obiger Schreibweise ist gefährlich. Beachte:<br />

◮ i kann nicht ” den Wert Unendlich“ annehmen.<br />

◮ i durchläuft die unendlich vielen Werte aus 0.<br />

◮ Aber jede dieser Zahlen ist endlich!<br />

<strong>Wörter</strong> Mehr zu <strong>Wörter</strong>n 11/29


Konkatenation von <strong>Wörter</strong>n: anschaulich<br />

◮ ganz einfach: die Hintereinan<strong>der</strong>schreibung zweier <strong>Wörter</strong><br />

◮ Operationssymbol üblicherweise <strong>der</strong> Punkt ” ·“,<br />

den man wie bei <strong>der</strong> Multiplikation manchmal weglässt<br />

◮ Beispiel:<br />

o<strong>der</strong><br />

SCHRANK · SCHLÜSSEL = SCHRANKSCHLÜSSEL<br />

SCHLÜSSEL · SCHRANK = SCHLÜSSELSCHRANK<br />

◮ Beachte: Reihenfolge ist wichtig!<br />

SCHRANKSCHLÜSSEL = SCHLÜSSELSCHRANK<br />

<strong>Wörter</strong> Konkatenation von <strong>Wörter</strong>n 12/29


Konkatenation von <strong>Wörter</strong>n: formal<br />

◮ zwei <strong>Wörter</strong> w1 : m → A1 <strong>und</strong> w2 : n → A2 gegeben<br />

◮ definiere<br />

w1 · w2 : m+n → A1 ∪ A2<br />

<br />

i ↦→<br />

w1(i)<br />

w2(i − m)<br />

falls 0 ≤ i < m<br />

falls m ≤ i < m + n<br />

◮ Was muss man tun, wenn man so etwas vorgesetzt bekommt?<br />

◮ Nicht abschrecken lassen!<br />

◮ bei Abbildungen prüfen: wird für alle Argumente ein<br />

Funktionswert definiert?<br />

◮ bei Fallunterscheidungen: wi<strong>der</strong>spruchsfrei?<br />

◮ Hat das Definierte die erfor<strong>der</strong>lichen Eigenschaften?<br />

◮ Verstehen!<br />

◮ Man sieht übrigens:<br />

∀w1 ∈ A ∗ ∀w2 ∈ A ∗ : |w1w2| = |w1| + |w2|<br />

<strong>Wörter</strong> Konkatenation von <strong>Wörter</strong>n 13/29


Konkatenation von <strong>Wörter</strong>n: formal<br />

◮ definiert:<br />

w1 · w2 : m+n → A1 ∪ A2<br />

<br />

i ↦→<br />

w1(i)<br />

w2(i − m)<br />

falls 0 ≤ i < m<br />

falls m ≤ i < m + n<br />

◮ Überprüfung:<br />

– w1(i) für 0 ≤ i < m <strong>und</strong> w2(i − m) für m ≤ i < m + n sind<br />

stets definiert.<br />

– die Funktionswerte stammen aus dem Bereich A1 ∪ A2:<br />

w1(i) ∈ A1 <strong>und</strong> w2(i − m) ∈ A2.<br />

– Die Fallunterscheidung ist wi<strong>der</strong>spruchsfrei.<br />

– w1 · w2 : m+n → A1 ∪ A2 ist surjektiv:<br />

Für jedes a ∈ A1 ∪ A2 gilt eine <strong>der</strong> Möglichkeiten:<br />

◮ a ∈ A1: da w1 surjektiv ist, existiert i1 ∈ m mit w1(i1) = a.<br />

Also ist (w1w2)(i1) = w1(i1) = a.<br />

◮ a ∈ A2: da w2 surjektiv ist, existiert i2 ∈ n mit w2(i2) = a.<br />

Also ist (w1w2)(m + i2) = w2(i2) = a.<br />

<strong>Wörter</strong> Konkatenation von <strong>Wörter</strong>n 14/29


Konkatenation von <strong>Wörter</strong>n: formal<br />

◮ definiert:<br />

w1 · w2 : m+n → A1 ∪ A2<br />

<br />

i ↦→<br />

w1(i)<br />

w2(i − m)<br />

falls 0 ≤ i < m<br />

falls m ≤ i < m + n<br />

◮ Überprüfung:<br />

w1(i) für 0 ≤ i < m <strong>und</strong> w2(i − m) für m ≤ i < m + n sind<br />

stets definiert.<br />

– die Funktionswerte stammen aus dem Bereich A1 ∪ A2:<br />

w1(i) ∈ A1 <strong>und</strong> w2(i − m) ∈ A2.<br />

– Die Fallunterscheidung ist wi<strong>der</strong>spruchsfrei.<br />

– w1 · w2 : m+n → A1 ∪ A2 ist surjektiv:<br />

Für jedes a ∈ A1 ∪ A2 gilt eine <strong>der</strong> Möglichkeiten:<br />

◮ a ∈ A1: da w1 surjektiv ist, existiert i1 ∈ m mit w1(i1) = a.<br />

Also ist (w1w2)(i1) = w1(i1) = a.<br />

◮ a ∈ A2: da w2 surjektiv ist, existiert i2 ∈ n mit w2(i2) = a.<br />

Also ist (w1w2)(m + i2) = w2(i2) = a.<br />

<strong>Wörter</strong> Konkatenation von <strong>Wörter</strong>n 14/29


Konkatenation von <strong>Wörter</strong>n: formal<br />

◮ definiert:<br />

w1 · w2 : m+n → A1 ∪ A2<br />

<br />

i ↦→<br />

w1(i)<br />

w2(i − m)<br />

falls 0 ≤ i < m<br />

falls m ≤ i < m + n<br />

◮ Überprüfung:<br />

w1(i) für 0 ≤ i < m <strong>und</strong> w2(i − m) für m ≤ i < m + n sind<br />

stets definiert.<br />

die Funktionswerte stammen aus dem Bereich A1 ∪ A2:<br />

w1(i) ∈ A1 <strong>und</strong> w2(i − m) ∈ A2.<br />

– Die Fallunterscheidung ist wi<strong>der</strong>spruchsfrei.<br />

– w1 · w2 : m+n → A1 ∪ A2 ist surjektiv:<br />

Für jedes a ∈ A1 ∪ A2 gilt eine <strong>der</strong> Möglichkeiten:<br />

◮ a ∈ A1: da w1 surjektiv ist, existiert i1 ∈ m mit w1(i1) = a.<br />

Also ist (w1w2)(i1) = w1(i1) = a.<br />

◮ a ∈ A2: da w2 surjektiv ist, existiert i2 ∈ n mit w2(i2) = a.<br />

Also ist (w1w2)(m + i2) = w2(i2) = a.<br />

<strong>Wörter</strong> Konkatenation von <strong>Wörter</strong>n 14/29


Konkatenation von <strong>Wörter</strong>n: formal<br />

◮ definiert:<br />

w1 · w2 : m+n → A1 ∪ A2<br />

<br />

i ↦→<br />

w1(i)<br />

w2(i − m)<br />

falls 0 ≤ i < m<br />

falls m ≤ i < m + n<br />

◮ Überprüfung:<br />

w1(i) für 0 ≤ i < m <strong>und</strong> w2(i − m) für m ≤ i < m + n sind<br />

stets definiert.<br />

die Funktionswerte stammen aus dem Bereich A1 ∪ A2:<br />

w1(i) ∈ A1 <strong>und</strong> w2(i − m) ∈ A2.<br />

Die Fallunterscheidung ist wi<strong>der</strong>spruchsfrei.<br />

– w1 · w2 : m+n → A1 ∪ A2 ist surjektiv:<br />

Für jedes a ∈ A1 ∪ A2 gilt eine <strong>der</strong> Möglichkeiten:<br />

◮ a ∈ A1: da w1 surjektiv ist, existiert i1 ∈ m mit w1(i1) = a.<br />

Also ist (w1w2)(i1) = w1(i1) = a.<br />

◮ a ∈ A2: da w2 surjektiv ist, existiert i2 ∈ n mit w2(i2) = a.<br />

Also ist (w1w2)(m + i2) = w2(i2) = a.<br />

<strong>Wörter</strong> Konkatenation von <strong>Wörter</strong>n 14/29


Konkatenation von <strong>Wörter</strong>n: formal<br />

◮ definiert:<br />

w1 · w2 : m+n → A1 ∪ A2<br />

<br />

i ↦→<br />

w1(i)<br />

w2(i − m)<br />

falls 0 ≤ i < m<br />

falls m ≤ i < m + n<br />

◮ Überprüfung:<br />

w1(i) für 0 ≤ i < m <strong>und</strong> w2(i − m) für m ≤ i < m + n sind<br />

stets definiert.<br />

die Funktionswerte stammen aus dem Bereich A1 ∪ A2:<br />

w1(i) ∈ A1 <strong>und</strong> w2(i − m) ∈ A2.<br />

Die Fallunterscheidung ist wi<strong>der</strong>spruchsfrei.<br />

w1 · w2 : m+n → A1 ∪ A2 ist surjektiv:<br />

Für jedes a ∈ A1 ∪ A2 gilt eine <strong>der</strong> Möglichkeiten:<br />

◮ a ∈ A1: da w1 surjektiv ist, existiert i1 ∈ m mit w1(i1) = a.<br />

Also ist (w1w2)(i1) = w1(i1) = a.<br />

◮ a ∈ A2: da w2 surjektiv ist, existiert i2 ∈ n mit w2(i2) = a.<br />

Also ist (w1w2)(m + i2) = w2(i2) = a.<br />

<strong>Wörter</strong> Konkatenation von <strong>Wörter</strong>n 14/29


Konkatenation mit dem leeren Wort<br />

◮ bei den Zahlen:<br />

∀x ∈ 0 : x + 0 = x ∧ 0 + x = x<br />

Die Null ist das neutrale Element bezüglich <strong>der</strong> Addition.<br />

◮ Analog bei <strong>Wörter</strong>n:<br />

Lemma. Für jedes Alphabet A gilt:<br />

∀w ∈ A ∗ : w · ε = w ∧ ε · w = w .<br />

◮ Anschaulich klar: Wenn man an ein Wort w hinten <strong>der</strong> Reihe<br />

nach noch alle Symbole des leeren Wortes ” klebt“, also gar<br />

keine, dann ” än<strong>der</strong>t sich an w nichts“.<br />

◮ Aber wir können das auch formal beweisen . . .<br />

<strong>Wörter</strong> Konkatenation von <strong>Wörter</strong>n 15/29


Das leere Wort ist neutrales Element bezüglich Konkatenation<br />

◮ Frage: Wie beweist man das für alle denkbaren Alphabete A?<br />

◮ Eine Möglichkeit: Man geht von einem ” beliebigen“ Alphabet<br />

A aus, über das man keinerlei Annahmen macht.<br />

◮ Frage: Wie beweist man die Behauptung für alle w ∈ A ∗ ?<br />

◮ Eine Möglichkeit: Man geht von einem beliebigen Wort w aus,<br />

über das man keinerlei Annahmen macht.<br />

◮ Also:<br />

◮ Es sei A ein Alphabet <strong>und</strong> w ∈ A ∗ , d. h. eine surjektive<br />

Abbildung w : m → B mit B ⊆ A.<br />

◮ Außerdem ist ε : 0 → {}.<br />

◮ berechne w ′ = w · ε anhand <strong>der</strong> formalen Definition:<br />

◮ w ′ ist eine Abbildung w ′ : m+0 → B ∪ {}, also w ′ : m → B.<br />

<strong>Wörter</strong> Konkatenation von <strong>Wörter</strong>n 16/29


Das leere Wort ist neutrales Element bezüglich Konkatenation (2)<br />

◮ für i ∈ m gilt<br />

w ′ <br />

w1(i)<br />

(i) =<br />

w2(i − m)<br />

<br />

falls 0 ≤ i < m<br />

falls m ≤ i < m + n<br />

=<br />

w(i)<br />

ε(i − m)<br />

falls 0 ≤ i < m<br />

falls m ≤ i < m + 0<br />

◮ Also<br />

= w(i)<br />

◮ w <strong>und</strong> w ′ haben gleichen Definitionsbereich<br />

◮ w <strong>und</strong> w ′ haben gleichen Zielbereich<br />

◮ w <strong>und</strong> w ′ haben für alle Argumente die gleichen<br />

Funktionswerte.<br />

◮ Also ist w ′ = w.<br />

◮ Ganz analog zeigt man: ε · w = w.<br />

<strong>Wörter</strong> Konkatenation von <strong>Wörter</strong>n 17/29


Eigenschaften <strong>der</strong> Konkatenation<br />

◮ schon gesehen: Reihenfolge ist wichtig<br />

SCHRANKSCHLÜSSEL = SCHLÜSSELSCHRANK<br />

Konkatenation ist nicht kommutativ.<br />

◮ Bei Zahlen gilt: (x · y) · z = x · (y · z)<br />

◮ Bei <strong>Wörter</strong>n analog:<br />

Lemma. Für jedes Alphabet A <strong>und</strong> alle <strong>Wörter</strong> w1, w2<br />

<strong>und</strong> w3 aus A ∗ gilt:<br />

Konkatenation ist assoziativ.<br />

◮ Beweis: einfach nachrechnen<br />

(w1 · w2) · w3 = w1 · (w2 · w3) .<br />

<strong>Wörter</strong> Konkatenation von <strong>Wörter</strong>n 18/29


Iterierte Konkatenation: Potenzen von <strong>Wörter</strong>n<br />

◮ bei Zahlen: Potenzschreibweise x 3 für x · x · x usw.<br />

◮ Ziel: analog für <strong>Wörter</strong> so etwas wie<br />

w n = w · w · · · · · · w<br />

<br />

n mal<br />

◮ wie<strong>der</strong> diese Pünktchen . . .<br />

◮ Wie kann man die vermeiden?<br />

◮ Was ist mit n = 1?<br />

(immerhin stehen da ja drei w auf <strong>der</strong> rechten Seite)<br />

◮ Was soll man sich für n = 0 vorstellen?<br />

◮ Möglichkeit: eine induktive Definition<br />

◮ für Potenzen von <strong>Wörter</strong>n geht das so:<br />

w 0 = ε<br />

∀n ∈ 0 : w n+1 = w n · w<br />

<strong>Wörter</strong> Konkatenation von <strong>Wörter</strong>n 19/29


Iterierte Konkatenation: Potenzen von <strong>Wörter</strong>n<br />

◮ definiert:<br />

w 0 = ε<br />

∀n ∈ 0 : w n+1 = w n · w<br />

◮ Damit kann man ausrechnen, was w 1 ist:<br />

◮ Und dann:<br />

◮ Und dann:<br />

◮ Und so weiter.<br />

w 1 = w 0+1 = w 0 · w = ε · w = w<br />

w 2 = w 1+1 = w 1 · w = w · w<br />

w 3 = w 2+1 = w 2 · w = (w · w) · w<br />

<strong>Wörter</strong> Konkatenation von <strong>Wörter</strong>n 20/29


Ein einfaches Lemma<br />

Lemma.<br />

Für jedes Alphabet A, jedes Wort w ∈ A ∗ <strong>und</strong> jedes n ∈ 0 gilt:<br />

|w n | = n|w| .<br />

◮ Wie kann man das beweisen?<br />

◮ Immer wenn in einer Aussage ” etwas“ eine Rolle spielt, das<br />

induktiv definiert wurde, sollte man in Erwägung ziehen, für<br />

den Beweis <strong>vollständige</strong> Induktion zu benutzen.<br />

<strong>Wörter</strong> Konkatenation von <strong>Wörter</strong>n 21/29


Ein einfaches Lemma<br />

◮ erst mal ein paar einfache Fälle als Beispiele:<br />

◮ n = 0: Das ist einfach: |w 0 | = |ε| = 0 = 0 · |w|.<br />

◮ n = 1: Man kann ähnlich rechnen wie bei w 1 = w:<br />

|w 1 | = |w 0+1 | = |w 0 · w|<br />

= |w 0 | + |w|<br />

= 0|w| + |w| siehe Fall n = 0<br />

= 1|w|<br />

Da die Behauptung für n = 0 richtig war, konnten wir sie auch<br />

für n = 1 beweisen.<br />

◮ n = 2: Wir gehen analog zu eben vor:<br />

|w 2 | = |w 1+1 | = |w 1 · w|<br />

= |w 1 | + |w|<br />

= 1|w| + |w| siehe Fall n = 1<br />

= 2|w|<br />

Da die Behauptung für n = 1 richtig war, konnten wir sie auch<br />

für n = 2 beweisen. <strong>Wörter</strong> Konkatenation von <strong>Wörter</strong>n 22/29


Vollständige Induktion<br />

◮ allgemeines Muster:<br />

◮ Weil w n+1 mit Hilfe von w n definiert wurde,<br />

◮ folgt aus <strong>der</strong> Richtigkeit <strong>der</strong> Behauptung für |w n | die für<br />

|w n+1 |.<br />

◮ Also: Wenn wir mit M die Menge aller natürlichen Zahlen n<br />

bezeichnen, für die die Behauptung |w n | = n|w| gilt, dann<br />

wissen wir also:<br />

1. 0 ∈ M<br />

2. ∀n ∈ 0 : (n ∈ M ⇒ n + 1 ∈ M)<br />

◮ Faktum aus <strong>der</strong> Mathematik:<br />

Wenn eine Menge M<br />

◮ nur natürliche Zahlen enthält<br />

◮ Eigenschaft 1 hat <strong>und</strong><br />

◮ Eigenschaft 2 hat,<br />

dann ist M = 0.<br />

<strong>Wörter</strong> Konkatenation von <strong>Wörter</strong>n 23/29


Vollständige Induktion: Beweis des Lemmas<br />

Nun im wesentlichen noch einmal das Gleiche wie oben in <strong>der</strong> für<br />

Induktionsbeweise üblichen Form:<br />

Induktionsanfang n = 0: Zu zeigen ist: |w 0 | = 0 · |w|.<br />

Das geht so:<br />

|w 0 | = |ε| nach Defintion von w 0<br />

= 0 = 0 · |w| .<br />

<strong>Wörter</strong> Konkatenation von <strong>Wörter</strong>n 24/29


Vollständige Induktion: Beweis des Lemmas<br />

Nun im wesentlichen noch einmal das Gleiche wie oben in <strong>der</strong> für<br />

Induktionsbeweise üblichen Form:<br />

Induktionsanfang n = 0: Zu zeigen ist: |w 0 | = 0 · |w|.<br />

Das geht so:<br />

Induktionsschritt n → n + 1:<br />

|w 0 | = |ε| nach Defintion von w 0<br />

= 0 = 0 · |w| .<br />

◮ Zu zeigen ist: Für jedes n gilt:<br />

wenn |w n | = n|w|, dann |w n+1 | = (n + 1)|w|.<br />

◮ Wie kann man zeigen, dass diese Aussage für<br />

alle natürlichen Zahlen n gilt?<br />

◮ Möglichkeit: Man gehe von einem ” beliebigen,<br />

aber festen“ n aus <strong>und</strong> zeige für ” dieses“ n:<br />

|w n | = n|w| ⇒ |w n+1 | = (n + 1)|w|.<br />

<strong>Wörter</strong> Konkatenation von <strong>Wörter</strong>n 24/29


Vollständige Induktion: Beweis des Lemmas<br />

Induktionsschritt n → n + 1: zwei Teile:<br />

◮ für ein beliebiges aber festes n trifft man die<br />

Induktionsannahme o<strong>der</strong> Induktionsvoraussetzung:<br />

|w n | = n|w|.<br />

◮ Zu leisten ist nun mit Hilfe dieser Annahme <strong>der</strong> Nachweis,<br />

dass auch |w n+1 | = (n + 1)|w|. Das nennt man den<br />

Induktionsschluss: In unserem Fall:<br />

|w n+1 | = |w n · w|<br />

= |w n | + |w|<br />

= n|w| + |w| nach Induktionsannahme<br />

= (n + 1)|w|<br />

<strong>Wörter</strong> Konkatenation von <strong>Wörter</strong>n 25/29


Vollständige Induktion: das Prinzip<br />

Wenn man für eine Aussage A(n), die von einer Zahl n ∈ 0<br />

abhängt, weiß<br />

es gilt A(0)<br />

<strong>und</strong> es gilt ∀n ∈ 0 : (A(n) ⇒ A(n + 1))<br />

dann gilt auch:<br />

∀n ∈ 0 : A(n) .<br />

<strong>Wörter</strong> Vollständige Induktion 26/29


Vollständige Induktion: eine kleine Variante<br />

ein kleiner Trick:<br />

◮ Es sei B(n) eine Aussage, die von einer Zahl n ∈ 0 abhängt.<br />

◮ Wollen beweisen: ∀n ∈ 0 : B(n)<br />

◮ Definiere Aussage A(n) als B(n) ∧ B(n + 1).<br />

◮ Beweise ∀n ∈ 0 : A(n): das reicht!<br />

<strong>Wörter</strong> Vollständige Induktion 27/29


Vollständige Induktion: eine kleine Variante<br />

ein kleiner Trick:<br />

◮ Es sei B(n) eine Aussage, die von einer Zahl n ∈ 0 abhängt.<br />

◮ Wollen beweisen: ∀n ∈ 0 : B(n)<br />

◮ Definiere Aussage A(n) als B(n) ∧ B(n + 1).<br />

◮ Beweise ∀n ∈ 0 : A(n): das reicht!<br />

◮ Induktionsbeweis für ∀n ∈ 0 : A(n):<br />

Induktionsanfang n = 0: Man muss zeigen:<br />

A(0), also B(0) ∧ B(1), also B(0) <strong>und</strong> B(1).<br />

Induktionsschritt n → n + 1:<br />

Induktionsannahme: es gilt A(n), also B(n) ∧ B(n + 1),<br />

also B(n) <strong>und</strong> B(n + 1)<br />

Induktionsschluss: zu zeigen: es gilt A(n + 1),<br />

also B(n + 1) ∧ B(n + 2), also B(n + 1) <strong>und</strong> B(n + 2)<br />

– B(n + 1): trivial<br />

– B(n + 2): hier muss man was tun,<br />

aber man kann B(n) <strong>und</strong> B(n + 1) benutzen<br />

<strong>Wörter</strong> Vollständige Induktion 27/29


Binäre Operationen<br />

◮ Eine binären Operation auf einer Menge M ist eine Abbildung<br />

f : M × M → M<br />

◮ üblich: Infixschreibweise mit ” Operationssysmbol“ wie z. B.<br />

Pluszeichen o<strong>der</strong> Multiplikationspunkt<br />

◮ Statt +(3, 8) = 11 schreibt man 3 + 8 = 11.<br />

◮ Eine binäre Operation ⋄ : M × M → M heißt genau dann<br />

kommutativ, wenn gilt:<br />

∀x ∈ M ∀y ∈ M : x ⋄ y = y ⋄ x .<br />

◮ Eine binäre Operation ⋄ : M × M → M heißt genau dann<br />

assoziativ, wenn gilt:<br />

∀x ∈ M ∀y ∈ M ∀z ∈ M : (x ⋄ y) ⋄ z = x ⋄ (y ⋄ z) .<br />

<strong>Wörter</strong> Binäre Operationen 28/29


Zusammenfassung<br />

Wir haben gesehen<br />

◮ was ein Wort ist<br />

◮ Der Begriff formale Sprache wirdin <strong>der</strong> nächsten <strong>Einheit</strong> folgen.<br />

◮ induktive Definitionen<br />

◮ erlauben, Pünktchen zu vermeiden . . .<br />

◮ <strong>vollständige</strong> Induktion<br />

◮ gaaaanz wichtiges Beweisprinzip<br />

◮ passt z. B. bei induktiven Definitionen<br />

<strong>Wörter</strong> Binäre Operationen 29/29

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!