Grundbegriffe der Theoretischen Informatik Sommersemester Thomas Schwentick

Grundbegriffe der Theoretischen Informatik Sommersemester 2015 - Thomas Schwentick Teil A: Reguläre Sprachen 2: Reguläre Ausdrücke: Motivation, Defin...
Author: Hilko Koch
3 downloads 0 Views 158KB Size
Grundbegriffe der Theoretischen Informatik Sommersemester 2015 - Thomas Schwentick

Teil A: Reguläre Sprachen 2: Reguläre Ausdrücke: Motivation, Definition, Beispiele Version von: 9. April 2015 (14:13)

Inhalt

✄ 2.1 Einleitung: Beschreibung von e-Mail-Adressen 2.2 Alphabete, Wörter, Sprachen 2.3 Reguläre Ausdrücke: Syntax und Semantik 2.4 Reguläre Ausdrücke: Beispiele, Erweiterungen, Äquivalenzen

GTI / Schwentick / SoSe 15

A: 2. Reguläre Ausdrücke

. ✁✄

Folie 1

Beispiel: HTML-Formular mit e-Mail-Adresse ‚ Hauptziele der nächsten vier Stunden: – Wir betrachten heute eine Methode, die es ermöglicht, einfache syntaktische Bedingungen für Zeichenketten unzweideutig zu beschreiben ∗ Als Beispiel werden wir e-MailAdressen beschreiben – Danach (Dienstag) werden wir eine einfache Klasse von Programmen kennen lernen, die solche Bedingungen überprüfen können – Schließlich werden wir Methoden kennen lernen, mit denen wir Beschreibungen automatisch in Testprogramme übersetzen und diese minimieren können

GTI / Schwentick / SoSe 15

A: 2. Reguläre Ausdrücke

. ✁✄

Folie 2

e-Mail-Adressen: informelle Beschreibung ‚ Typische e-Mail-Adressen: – President@ whitehouse.gov – thomas.schwentick@ cs.tu-dortmund.de – zu_hause.hannamustermann82@ irgendein.provider.de

‚ Die genauen Regeln für e-Mail-Adressen sind ziemlich kompliziert

➞ Wir betrachten deshalb nur eine Annäherung der korrekten e-Mail-Adressen

GTI / Schwentick / SoSe 15

„Definition“: e-Mail-Adressen

‚ E-Mail-Adressen haben die Form „Lokaler-Name@Domain-Name“

‚ Ein „Label“ verwendet Zeichen aus: a-z, A-Z, 0-9, „-“, „_“ ‚ Am Anfang eines Labels steht immer ein Buchstabe ‚ Der lokale Name besteht aus beliebig vielen (aber mindestens einem) Labels, die durch „.“ getrennt werden

‚ Der Domain-Name besteht aus beliebig vielen (aber mindestens zwei) Labels, die durch „.“ getrennt werden

‚ Das letzte Label im Domain-Namen besteht aus zwei bis vier Buchstaben

‚ Zwischenziele für die heutige Vorlesung: – Beschreibung aller Zeichenketten, die diesen Regeln entsprechen – Da die Beschreibung (später) automatisch in ein Programm übersetzt werden soll, brauchen wir einen Beschreibungs-Formalismus mit einer klaren Semantik – Wir verwenden als Beschreibungs-Formalismus: reguläre Ausdrücke A: 2. Reguläre Ausdrücke

. ✁✄

Folie 3

Inhalt

2.1 Einleitung: Beschreibung von e-Mail-Adressen

✄ 2.2 Alphabete, Wörter, Sprachen 2.3 Reguläre Ausdrücke: Syntax und Semantik 2.4 Reguläre Ausdrücke: Beispiele, Erweiterungen, Äquivalenzen

GTI / Schwentick / SoSe 15

A: 2. Reguläre Ausdrücke

. ✁✄

Folie 4

Zeichenketten und Sprachen: informell ‚ Eine Zeichenkette (oder: ein String) ist eine ‚ Die Menge der erlaubten Zeichen nennen wir Alphabet

(endliche) Folge von Zeichen

‚ Im Kontext von Computern spielen Zeichenketten und Mengen von Zeichenketten eine große Rolle Beispiel

male) Sprache Beispiel

‚ Die Menge aller syntaktisch korrekten JAVA-Programme ist eine Sprache

‚ Jedes Computer-Programm public class Hallo { public static void main(String[] args) { System.out.println(“Hallo Welt!”); } } ist eine Zeichenkette: public class Hallo { public static void main(String[] args) { System. out.println(“Hallo Welt!”); } } GTI / Schwentick / SoSe 15

‚ Eine Menge von Zeichenketten heißt (for-

Beispiel

‚ Die Menge aller syntaktisch korrekten JAVA-Programme, die „Hallo Welt!“ ausgeben, ist eine Sprache Beispiel

‚ Die Menge der Befehlssequenzen einer Fernbedienung für einen Fernseher, nach deren Ausführung der Lautsprecher ausgeschaltet ist, ist eine Sprache über dem Alphabet der „Tasten“

A: 2. Reguläre Ausdrücke

. ✁✄

Folie 5

Alphabete, Wörter, Sprachen (1/3) Definition: Alphabet 2.1

Definition

‚ Ein Alphabet Σ ist eine endliche, nicht-

‚ Ein Wort w über einem Alphabet Σ ist eine endliche Folge σ1 ¨ ¨ ¨ σn von Zeichen von Σ

leere Menge

‚ Die Elemente eines Alphabets heißen Zeichen oder Symbole

‚ Notation für Alphabete: ‚

– große, griechische Buchstaben, z.B. Σ („Sigma“), ∆ („Delta“), Γ („Gamma“) Notation für einzelne Zeichen: – kleine griechische Buchstaben, z.B. σ („sigma“), τ („tau“), . . . Beispiel

‚ tA, . . . , Zu ‚ t0, 1u ‚ tÐ, Ò, Ó, Ñu

GTI / Schwentick / SoSe 15

‚ Wir bezeichnen Wörter auch als Strings oder Zeichenketten Notation für Wörter: u, v, w, . . .

‚ ‚ Die Länge |w| von w “ σ1 ¨ ¨ ¨ σn ist die Anzahl n der Zeichen von w ‚ ǫ: Wort der Länge 0 (leeres Wort) Beispiel

‚ Σ “ t a , . . . , zu ‚ Wörter über Σ: – – – – –

informatik jdgfsfsxnffishwrafdhug abba j

ǫ

A: 2. Reguläre Ausdrücke

. ✁✄

Folie 6 !

Alphabete, Wörter, Sprachen (2/3) Definition

‚ Eine Sprache über einem Alphabet Σ ist eine (endliche oder unendliche) Menge von Wörtern über Σ Beispiel

‚ Menge aller syntaktisch korrekten e-Mail-Adressen ‚ Menge aller Strings über t0, 1u, die den Teilstring 010 enthalten ‚ Menge aller Strings über t0, 1u, die abwechselnd 0 und 1 enthalten

‚ Menge aller Wörter über Σ (Bezeichnung: Σ˚ ) – t0, 1u˚ “ tǫ, 0, 1, 00, 01, 10, 11, 000, 001, . . .u

GTI / Schwentick / SoSe 15

A: 2. Reguläre Ausdrücke

. ✁✄

Folie 7

Alphabete, Wörter, Sprachen (3/3) Beispiel

‚ Menge aller HTML-Tags: def

MHTML “ txAy, xABBREVy, xACRONYMy, xADDRESSy, xAPPLETy, xAREAy, xAUy, xAUTHORy, xBy, xBANNERy, xBASEy, xBASEFONTy, xBGSOUNDy, xBIGy, xBLINKy, xBLOCKQUOTEy, xBQy, xBODYy, xBRy, xCAPTIONy, xCENTERy, xCITEy, xCODEy, xCOLy, xCOLGROUPy, xCREDITy, xDELy, xDFNy, xDIRy, xDIVy, xDLy, xDTy, xDDy, xEMy, xEMBEDy, xFIGy, xFNy, xFONTy, xFORMy, xFRAMEy, xFRAMESETy, xH1y, xH2y, xH3y, xH4y, xH5y, xH6y, xHEADy, xHRy, xHTMLy, xIy, xIFRAMEy, xIMGy, xINPUTy, xINSy, xISINDEXy, xKBDy, xLANGy, xLHy, xLIy, xLINKy, xLISTINGy, xMAPy, xMARQUEEy, xMATHy, xMENUy, xMETAy, xMULTICOLy, xNOBRy, xNOFRAMESy, xNOTEy, xOLy, xOVERLAYy, xPy, xPARAMy, xPERSONy, xPLAINTEXTy, xPREy, xQy, xRANGEy, xSAMPy, xSCRIPTy, xSELECTy, xSMALLy, xSPACERy, xSPOTy, xSTRIKEy, xSTRONGy, xSUBy, xSUPy, xTABy, xTABLEy, xTBODYy, xTDy, xTEXTAREAy, xTEXTFLOWy, xTFOOTy, xTHy, xTHEADy, xTITLEy, xTRy, xTTy, xUy, xULy, xVARy, xWBRy, xXMPyu GTI / Schwentick / SoSe 15

‚ MHTML ist eine Sprache über dem Alphadef bet Σ “ tx, y, {, A, . . . , Zu ‚ Da MHTML endlich ist, ist es auch ein Alphabet Beispiel

xHTMLy xHEADy xTITLEyGTIx/TITLEy x/HEADy xBODYy ... x/BODYy x/HTMLy

‚ ist ein Wort über dem Alphabet Σ, ‚ kann aber auch als Wort über dem Alphabet MHTML Y M/HTML Y tA, . . . , Zu aufgefasst werden ( M/HTML : Menge der schließenden Tags)

A: 2. Reguläre Ausdrücke

. ✁✄

Folie 8

Konkatenation Definition

Definition

‚ Das Zeichen „¨“ bezeichnet die Operation

‚ un bezeichnet die n-malige Wiederholung von u, also: – u0 “ ǫ, u1 “ u, u2 “ uu, ... ‚ Induktiv: u0 “ ǫ, un`1 “ un ¨ u

der Konkatenation von Strings: – Sind u und v Wörter, so bezeichnet u ¨ v das Wort, das entsteht, wenn v hinter u geschrieben wird Beispiel

‚ abb ¨ cda “ abbcda ‚ a ¨ abc ¨ ba “ aabcba ‚ abbc ¨ ǫ “ abbc

Beispiel

‚ pabq2 “ abab ‚ paaaq3 “ aaaaaaaaa ‚ pabcq0 “ ǫ ‚ ǫ3 “ ǫ ‚ Wir werden das Operationssymbol ¨ meistens weg lassen und einfach uv statt u ¨ v schreiben

‚ Ist u “ abc und v “ bca, so ist also uv “ abcbca

GTI / Schwentick / SoSe 15

A: 2. Reguläre Ausdrücke

. ✁✄

Folie 9 !

Inhalt

2.1 Einleitung: Beschreibung von e-Mail-Adressen 2.2 Alphabete, Wörter, Sprachen

✄ 2.3 Reguläre Ausdrücke: Syntax und Semantik 2.4 Reguläre Ausdrücke: Beispiele, Erweiterungen, Äquivalenzen

GTI / Schwentick / SoSe 15

A: 2. Reguläre Ausdrücke

. ✁✄

Folie 10

Beschreibungsformalismus: Anforderungen ‚ Unser Beschreibungsformalismus soll mindestens die folgenden Abschlusseigenschaften haben: – Konkatenation: wenn die Sprache L1 beschreibbar ist und die Sprache L2 beschreibbar ist, so soll auch die Sprache def

L1 ˝ L2 “ tuv | u P L1 , v P L2 u beschreibbar sein ∗ z.B.: Lokaler-Name@Domain-Name – Auswahl: wenn L1 und L2 beschreibbar sind, so soll auch L1 Y L2 beschreibbar sein ∗ z.B.: „Ein „Label“ verwendet Zeichen aus: a-z, A-Z, 0-9, ...“ – Wiederholung: wenn L1 beschreibbar ist, so soll auch die Sprache

Beispiel

‚ tau˚ “tǫ, a, aa, aaa, . . .u ‚ tau˚ ˝ tbu˚ “tǫ, a, b, aa, ab, bb, aaa, aab, abb, . . .u ‚ tau˚ Y tbu˚ “ tǫ, a, b, aa, bb, aaa, bbb, . . .u

def

L˚1 “ tu1 ¨ ¨ ¨ un | u1 , . . . , un P L1 , n P N0 u der „Wiederholungen von L1 “ beschreibbar sein 2.2

∗ z.B.: „Der lokale Name besteht aus beliebig vielen (aber mindestens einem) Labels... “

GTI / Schwentick / SoSe 15

A: 2. Reguläre Ausdrücke

. ✁✄

Folie 11

Reguläre Ausdrücke: „Definition durch Beispiele“ ‚ Im Folgenden stehen α, β immer für reguläre Ausdrücke

‚ Die Wiederholung wird durch den Operator ˚ ausgedrückt: – b˚ ”

tǫ, b, bb, bbb, bbbb, . . .u (ǫ ist der String ohne Zeichen) – α˚ : beliebig viele α-Strings hintereinander

‚ Die Konkatenation wird wie ein Produkt geschrieben: – ab˚ ” ta, ab, abb, abbb, . . .u – αβ : Strings die durch Anhängen eines β -Strings an einen α-String entstehen ‚ Die Vereinigung wird durch den Operator ` ausgedrückt: – b ` c˚ ” tb, ǫ, c, cc, ccc, . . .u – α ` β : Strings, die α-Strings oder β -Strings sind

‚ Es gilt: Wiederholung vor Konkatenation vor Vereinigung ➞ ab˚ ` cd ” papb˚ qq ` pcdq ” tcd, a, ab, abb, abbb, . . .u GTI / Schwentick / SoSe 15

A: 2. Reguläre Ausdrücke

. ✁✄

Folie 12

Reguläre Ausdrücke: Syntax PINGO-Frage: pingo.upb.de

Reguläre Ausdrücke: Syntax 2.3

‚ Sei Σ ein Alphabet ‚ Die folgenden Regeln definieren die Menge der regulären Ausdrücke über Σ:

‚ Welche der folgenden Zeichenketten sind reguläre Ausdrücke? (A) pab ` cq˚

pppabq˚ q ` pbpa˚ qqq (C) pa ` `bq (D) ppb˚ q˚ q (B)

1) a) Das Zeichen H ist ein regulärer Ausdruck b) Das Zeichen ǫ ist ein regulärer Ausdruck c) Für jedes σ P Σ ist σ ein regulärer Ausdruck 2) Sind α und β reguläre Ausdrücke, so auch a) pαβq, und b) pα ` βq

✎ Wir werden bald das Weglassen „überflüssiger“ Klammern erlauben

3) Ist α ein regulärer Ausdruck, so auch pα˚ q

✎ Wir verwenden die Abkürzung RE für „regulärer

Ausdruck“, da der englische Begriff regular expression lautet – Entsprechend als Mehrzahl: REs für regular expressions

GTI / Schwentick / SoSe 15

A: 2. Reguläre Ausdrücke

. ✁✄

Folie 13

Reguläre Ausdrücke: Semantik (1/2) ‚ Wir haben jetzt festgelegt, was reguläre Ausdrücke sind

‚ Wir haben also die Syntax regulärer Ausdrücke definiert

‚ Wir haben aber noch nicht definiert, was reguläre Ausdrücke bedeuten

‚ Im nächsten Schritt definieren wir deshalb die Semantik regulärer Ausdrücke – Diese Definition bietet keine Überraschungen, da sich in diesem Fall die formale Semantik nicht sehr von der informellen Beschreibung unterscheidet – Die Definition ist aber die formale Grundlage für die automatische Übersetzung regulärer Ausdrücke GTI / Schwentick / SoSe 15

‚ Die folgende Definition der Semantik regulärer Ausdrücke ordnet jedem regulären Ausdruck α eine Sprache Lpαq zu ‚ Zum Beispiel soll gelten: Lppa˚ qq “ tǫ, a, aa, aaa, . . .u Reguläre Ausdrücke: Semantik

‚ Für jeden regulären Ausdruck α sei Lpαq wie folgt definiert: – ∗ LpHq

“H ∗ Lpǫq “ tǫu ∗ Lpσq “ tσu, für jedes σ P Σ – Sind α und β reguläre Ausdrücke so ist ∗ Lppαβqq “ Lpαq ˝ Lpβq, ∗ Lppα ` βqq “ Lpαq Y Lpβq – Ist α ein regulärer Ausdruck, so ist Lppα˚ qq “ Lpαq˚ Definition: Reguläre Sprache

‚ Eine Sprache L heißt regulär, falls es einen regulären Ausdruck α gibt mit L “ Lpαq A: 2. Reguläre Ausdrücke

. ✁✄

Folie 14

Reguläre Ausdrücke: Semantik (2/2) Reguläre Ausdrücke: Semantik (Wdh.)

Beispiel

‚ Für jeden regulären Ausdruck α sei Lppppa˚ qbq ` papb˚ qqqq Lpαq wie folgt definiert: “ Lpppa˚ qbqq Y Lppapb˚ qqq – ∗ LpHq “ H ∗ Lpǫq “ tǫu “ pLppa˚ qq ˝ Lpbqq Y pLpaq ˝ Lppb˚ qqq ∗ Lpσq “ tσu, “ ptǫ, a, aa, . . .u ˝ tbuq Y ptau ˝ tǫ, b, bb, . . .uq für jedes σ P Σ “ tb, a, ab, aab, abb, aaab, abbb, . . .u – Sind α und β reguläre Ausdrücke so ist

∗ Lppαβqq “ Lpαq ˝ Lpβq, ∗ Lppα`βqq “ LpαqYLpβq – Ist α ein regulärer Ausdruck, so ist Lppα˚ qq “ Lpαq˚

GTI / Schwentick / SoSe 15

A: 2. Reguläre Ausdrücke

. ✁✄

Folie 15 !

Zwischenbemerkung ✎ Vorsicht: – Wir verwenden die Symbole H und ǫ mit zwei Bedeutungen: ∗ H bezeichnet einerseits die leere Menge, kann aber auch als Zeichen in einem regulären Ausdruck vorkommen ∗ ǫ bezeichnet einerseits den Leerstring, kann aber ebenfalls als Zeichen in einem regulären Ausdruck vorkommen – Das ist so üblich – Aus dem Kontext wird immer ersichtlich sein, was jeweils gemeint ist

GTI / Schwentick / SoSe 15

A: 2. Reguläre Ausdrücke

. ✁✄

Folie 16 !

Inhalt

2.1 Einleitung: Beschreibung von e-Mail-Adressen 2.2 Alphabete, Wörter, Sprachen 2.3 Reguläre Ausdrücke: Syntax und Semantik

✄ 2.4 Reguläre Ausdrücke: Beispiele, Erweiterungen, Äquivalenzen

GTI / Schwentick / SoSe 15

A: 2. Reguläre Ausdrücke

. ✁✄

Folie 17

Reguläre Ausdrücke: Beispiele Beispiel

‚ Die Beispiel-Ausdrücke sind schwer lesbar: zu viele Klammern

‚ Ohne Klammern ist die Semantik zunächst unklar: ab`cd˚ könnte bedeuten: – pabq`ppcdq˚ q – ppapb`cqqdq˚ – ppabq`pcpd˚ qqq ‚ Deshalb verwenden wir Präzedenzregeln: – – – –

Klammern binden am stärksten Dann ˚ Dann Konkatenation Dann `

010 als Teilstring enthalten:

Beispiel

‚ Die Menge aller Strings über t0, 1u, die abwechselnd 0 und 1 enthalten: oder Beispiel

‚ Der Ausdruck ab ` cd˚ steht also für ppabq ` pcpd˚ qqq

GTI / Schwentick / SoSe 15

‚ Die Menge aller Strings über t0, 1u, die

‚ Die Menge aller Strings über t0, 1u, die gerade viele Einsen enthalten:

A: 2. Reguläre Ausdrücke

. ✁✄

Folie 18 !

Reguläre Ausdrücke: Syntaktischer Zucker ‚ Um praktisch relevante Beispiele ausdrücken zu können, sind reguläre Ausdrücke ‚

manchmal etwas umständlich Deshalb werden in der Praxis meist erweiterte reguläre Ausdrücke verwendet, die abkürzende Schreibweisen wie die folgenden erlauben: Definition Abkürzung ...

... steht für ...

ra ´ zs α? α` αn αtm,nu

a ` ¨¨¨ ` z pα ` ǫq αα˚ ᨨ¨α αm pα?qn´m

Erläuterung keinmal oder einmal α mindestens einmal α

n mal α mindestens m-mal, höchstens n-mal α

‚ Damit können wir jetzt die Syntax von e-Mail-Adressen beschreiben: pra-zA-Zsra-zA-Z0-9z-z_s˚ .q˚ ra-zA-Zsra-zA-Z0-9z-z_s˚ @ pra-zA-Zsra-zA-Z0-9z-z_s˚ .q` [a-zA-Zst2,4u ‚ Solange nicht ausdrücklich etwas anderes gesagt wird, werden wir uns aber im Folgenden auf „reine“ reguläre Ausdrücke beschränken! GTI / Schwentick / SoSe 15

A: 2. Reguläre Ausdrücke

. ✁✄

Folie 19

Reguläre Ausdrücke: Äquivalenzen (1/4) Satz 2.1

Definition

‚ Es gelten folgende Äquivalenzen für beliebige reguläre Ausdrücke α, β, γ : Assoziativität bezüglich ` und ˝ – α ` pβ ` γq ” pα ` βq ` γ – αpβγq ” pαβqγ Kommutativität bezüglich ` – α`β ”β`α Neutrale Elemente bezüglich ` und ˝ – H`α”α”α`H – ǫα ” α ” αǫ Nullelement bezüglich ˝ – Hα ” H ” αH Distributivität – αpβ ` γq ” – pα ` βqγ ” Stern – pα˚ q˚ ” α˚ – H˚ ” ǫ – ǫ˚ ” ǫ

GTI / Schwentick / SoSe 15

αβ ` αγ αγ ` βγ

‚ Für zwei reguläre Ausdrücke α, β schreiben wir α ” β , falls Lpαq “ Lpβq Beispiel

p1 ` ǫqp01q˚ p0 ` ǫq ” 1p01q˚ p0 ` ǫq ` p01q˚ p0 ` ǫq ” 1p01q˚ 0 ` 1p01q˚ ` p01q˚ 0 ` p01q˚ ✎ Der letzte Ausdruck lässt sich vereinfachen zu p10q˚

` p10q˚ 1 ` p01q˚ 0 ` p01q˚

– Das lässt sich aber nicht mit den obigen Regeln herleiten

✎ Die Assoziativität bezüglich ˝ erlaubt uns, in einer Folge von Konkatenationen alle Klammern wegzulassen:

pppabqcqdqe ” abcde ” apbpcpdeqqq A: 2. Reguläre Ausdrücke

. ✁✄

Folie 20

Reguläre Ausdrücke: Äquivalenzen (2/4) ‚ Wie lassen sich die Äquivalenzen aus Satz 2.1 beweisen?

‚ Wir betrachten einen Beispielbeweis für die Äquivalenz αpβ ` γq ” αβ ` αγ ‚ Wir müssen zeigen, dass Lpαpβ ` γqq “ Lpαβ ` αγq ‚ Wir müssen also zeigen, dass zwei Mengen von Strings gleich sind

‚ Gleichheit von zwei Mengen M1 , M2 lässt sich meist am besten in zwei Schritten zeigen: – M1 Ď M2 ∗ Also: für alle w P M1 gilt w P M2 – M2 Ď M1

GTI / Schwentick / SoSe 15

A: 2. Reguläre Ausdrücke

. ✁✄

Folie 21

Reguläre Ausdrücke: Äquivalenzen (3/4) Beweis

‚ Seien α, β, γ beliebig ‚ Wir wollen zuerst zeigen: Lpαpβ ` γqq Ď Lpαβ ` αγq ‚ Sei also w ein beliebiger String aus Lpαpβ ` γqq ➨ es gibt u P Lpαq und v P Lpβ ` γq mit w “ uv

☞ Semantik REs: Konkatenation

➨ v P Lpβq oder v P Lpγq ☞ Semantik REs: Auswahl

‚ Wir unterscheiden zwei Fälle: – 1. Fall: v P Lpβq ∗ Da u P Lpαq und v P Lpβq, ist w “ uv P Lpαβq

☞ Semantik REs: Konkatenation

➨ w P Lpαβ ` αγq ☞ Semantik REs: Auswahl – 2. Fall: v P Lpγq ➨ w “ uv P Lpαγq ☞ Semantik REs: Konkatenation ➨ w P Lpαβ ` αγq ☞ Semantik REs: Auswahl ‚ Der Beweis von Lpαβ ` αγq Ď Lpαpβ ` γqq ist analog

GTI / Schwentick / SoSe 15

A: 2. Reguläre Ausdrücke

. ✁✄

Folie 22

Reguläre Ausdrücke: Äquivalenzen (4/4) Beweis

‚ Wie lässt sich beweisen, dass eine vermutete oder behauptete Äquivalenz nicht gilt?

‚ Wir betrachten als Beispiel die nicht gültige Äquivalenz

α ` pβγq ” pα ` βqpα ` γq ‚ Wir formulieren zunächst eine mathematische Aussage, die die Ungültigkeit dieser Äquivalenz ausdrückt Proposition 2.2

‚ Es gibt reguläre Ausdrücke α, β, γ mit Lpα ` pβγqq ­“ Lppα ` βqpα ` γqq ‚ Diese Proposition lässt sich sehr einfach durch Angabe eines Beispiels beweisen ✎ Das Beispiel belegt die Gültigkeit der Proposition, für die behauptete Äquivalenz ist es ein Gegenbeispiel

GTI / Schwentick / SoSe 15

‚ Wir wählen: – α“a – β “b – γ “c ‚ Dann gelten: – aa R Lpα ` pβγqq “ Lpa ` pbcqq – aa P Lppα ` βqpα ` γqq “ Lppa ` bqpa ` cqq ‚ Also gilt im allgemeinen nicht die Aussage Lppα ` βqpα ` γqq Ď Lpα ` pβγqq und deshalb auch nicht

Lpα ` pβγqq “ Lppα ` βqpα ` γqq ‚ Bemerkung: – Bei Beweisen durch Gegenbeispiel sollte das Gegenbeispiel jeweils so konkret wie möglich gewählt werden

A: 2. Reguläre Ausdrücke

. ✁✄

Folie 23 !

Reguläre Ausdrücke: Zusammenfassung ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚

Warum reguläre Ausdrücke? Begriffe: Alphabete, Wörter, Sprachen Syntax regulärer Ausdrücke Semantik regulärer Ausdrücke Präzedenzregeln Abkürzende Schreibweisen für reguläre Ausdrücke Äquivalenzregeln für reguläre Ausdrücke Beweismethoden: – Mengengleichheit – Beweis durch Gegenbeispiel

‚ Was haben wir bisher erreicht? – Wir können syntaktisch korrekte e-Mail-Adressen jetzt sauber spezifizieren – Wir können sie aber noch nicht automatisch in Algorithmen/Programme übersetzen ➞ Damit werden wir uns im nächsten Kapitel beschäftigen GTI / Schwentick / SoSe 15

A: 2. Reguläre Ausdrücke

. ✁✄

Folie 24

Erläuterungen Bemerkung 2.1

Bemerkung 2.3

‚ Zu definierende Begriffe sind durch Unterstreichung, Fettdruck und dunkles Türkis zu erkennen

‚ Auch Schreibweisen wie un werden so gekennzeichnet

‚ Später werden diese Schreibweisen dann

‚ Die Definition der Syntax regulärer Ausdrücke ist eine induktive Definition (Näheres dazu in der nächsten Vorlesung)

‚ Die Menge aller regulären Ausdrücke über Σ ist selbst auch wieder eine Sprache( – Alphabet: Σ Y H, ǫ, `,˚ , q, p

aber ohne Unterstreichung etc. verwendet Bemerkung 2.2

✎ Zu beachten: –

N bezeichnet in dieser Vorlesung die

Menge der natürlichen Zahlen ohne 0, – N0 bezeichnet die natürlichen Zahlen mit 0 – L˚ 1 enthält also immer auch den Leerstring

GTI / Schwentick / SoSe 15

A: 2. Reguläre Ausdrücke

. ✁✄

Folie 25