Abschlusseigenschaften. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Abschlusseigenschaften

Regul¨ are Sprachen Abschlusseigenschaften Abschlusseigenschaften Automaten und Formale Sprachen“ ” alias Theoretische Informatik“ ” Abgeschlossenh...
Author: Alfred Maier
0 downloads 0 Views 274KB Size
Regul¨ are Sprachen

Abschlusseigenschaften

Abschlusseigenschaften Automaten und Formale Sprachen“ ” alias Theoretische Informatik“ ”

Abgeschlossenheit (Definition) Gegeben sei eine Menge M und ein n-¨arer Operator f : M × · · · × M → M. Man sagt, eine Menge M 0 ⊆ M ist unter f abgeschlossen, wenn f¨ ur n 0 0 beliebige Elemente m1 , . . . , mn ∈ M gilt: f (m1 , . . . , mn ) ∈ M .

Sommersemester 2012

Beispiel: Sei M = N und M 0 = {i | i ∈ N und i ist gerade}. Sei f der Multiplikationsoperator, d.h. f (x, y ) = x · y . M 0 ist abgeschlossen unter f , denn das Produkt zweier gerader Zahlen ist wieder eine gerade Zahl.

Dr. Sander Bruggink ¨ Ubungsleitung: Jan St¨ uckrath

Sei nun g die Operation: g (x) = x/2, wobei / der Ganzzahldivision entspricht. M 0 ist nicht unter der Operation g abgeschlossen. Ein Gegenbeispiel ist: g (6) = 6/2 = 3. Sander Bruggink Regul¨ are Sprachen

Automaten und Formale Sprachen Abschlusseigenschaften

1

Sander Bruggink Regul¨ are Sprachen

Automaten und Formale Sprachen Abschlusseigenschaften

Abschlusseigenschaften

Abschlusseigenschaften

Wir betrachten hier Abschlusseigenschaften f¨ ur die Menge aller regul¨aren Sprachen. Die interessante Frage ist:

Abschluss unter Vereinigung Wenn L1 und L2 regul¨are Sprachen sind, dann ist auch L1 ∪ L2 regul¨ar.

Falls L1 , L2 regul¨ar sind, sind dann auch L1 ∪ L2 , L1 ∩ L2 , L1 L2 , L1 = Σ∗ \L1 (Komplement) und L∗1 regul¨ar?

Beweis: Da L1 und L2 nach Annahme regul¨ar sind, gibt es regul¨are Ausdr¨ ucke α1 und α2 mit L(α1 ) = L1 und L(α2 ) = L2 . Der regul¨are Ausdruck α1 | α2 erzeugt nun die Sprache L1 ∪ L2 und von daher ist sie regul¨ar.

Kurze Antwort: Die regul¨aren Sprachen sind unter allen diesen Operationen abgeschlossen.

Sander Bruggink

Automaten und Formale Sprachen

169

170

Sander Bruggink

Automaten und Formale Sprachen

171

Regul¨ are Sprachen

Abschlusseigenschaften

Regul¨ are Sprachen

Abschlusseigenschaften

Abschlusseigenschaften

Abschluss unter Produkt/Konkatenation

Abschluss unter der Stern-Operation Wenn L eine regul¨are Sprache ist, dann ist auch L∗ regul¨ar.

Wenn L1 und L2 regul¨are Sprachen sind, dann ist auch L1 L2 = {w1 w2 | w1 ∈ L1 , w2 ∈ L2 } regul¨ar. Beweis: Da L1 und L2 nach Annahme regul¨ar sind, gibt es regul¨are Ausdr¨ ucke α1 und α2 mit L(α1 ) = L1 und L(α2 ) = L2 . Der regul¨are Ausdruck α1 α2 erzeugt nun die Sprache L1 L2 und von daher ist sie regul¨ar.

Sander Bruggink Regul¨ are Sprachen

Abschlusseigenschaften

Automaten und Formale Sprachen Abschlusseigenschaften

172

Beweis: Da L nach Annahme regul¨ar ist, gibt es einen regul¨aren Ausdruck α mit L(α) = L. Der regul¨are Ausdruck α∗ erzeugt dann die Sprache L∗ . Da es einen regul¨aren Ausdruck f¨ ur die Sprache gibt, ist sie regul¨ar.

Sander Bruggink Regul¨ are Sprachen

Automaten und Formale Sprachen Abschlusseigenschaften

173

Abschlusseigenschaften

Abschlusseigenschaften

Abschluss unter Komplement

Beweis: Da L nach Annahme regul¨ar ist, gibt es einen DFA M = (Z , Σ, δ, z0 , E ) mit T (M) = L. Dieser Automat wird einfach in einen Automaten M 0 f¨ ur L umgewandelt, indem man die End- und Nicht-Endzust¨ande vertauscht. D.h. M 0 = (Z , Σ, δ, z0 , Z \E ).

Wenn L eine regul¨are Sprache ist, dann ist auch L = Σ∗ \L regul¨ar. Bemerkung: bei Bildung des Komplements muss immer festgelegt werden, bez¨ uglich welcher Obermenge das Komplement gebildet werden soll. Hier ist das die Menge Σ∗ aller W¨orter u ¨ber dem Alphabet Σ, das gerade betrachtet wird.

Sander Bruggink

Automaten und Formale Sprachen

174

ˆ 0 , w ) ∈ E ⇐⇒ δ(z ˆ 0 , w ) 6∈ Z \E ⇐⇒ w 6∈ L. Dann gilt: w ∈ L ⇐⇒ δ(z Weil es einen DFA M 0 f¨ ur L gibt, ist L regul¨ar.

Sander Bruggink

Automaten und Formale Sprachen

175

Regul¨ are Sprachen

Abschlusseigenschaften

Regul¨ are Sprachen

Abschlusseigenschaften

Abschlusseigenschaften

Abschlusseigenschaften

Abgeschlossenheit unter Komplement b c

a

z0

z1 a

z2

c

zE

Abschluss unter Schnitt Wenn L1 und L2 regul¨are Sprachen sind, dann ist auch L1 ∩ L2 regul¨ar.

a, b, c

Beweis: Es gilt L1 ∩ L2 = L1 ∪ L2 und wir wissen bereits, dass regul¨are Sprachen unter Komplement und Vereinigung abgeschlossen sind.

b a

b, c

b c

a

z0

z1 a

z2

c

zE

b a

b, c

Sander Bruggink Regul¨ are Sprachen

a, b, c Automaten und Formale Sprachen Abschlusseigenschaften

176

Abschlusseigenschaften

Sander Bruggink Regul¨ are Sprachen

Automaten und Formale Sprachen Abschlusseigenschaften

177

Abschlusseigenschaften

Kreuzproduktkonstruktion Es gibt noch eine direkte Konstruktion. Dabei werden die zwei Automaten f¨ ur L1 und L2 miteinander synchronisiert und quasi parallelgeschaltet“. ” Dies erfolgt durch das Bilden des Kreuzprodukts. Seien M1 = (Z1 , Σ, δ1 , s1 , E1 ) und M2 = (Z2 , Σ, δ2 , s2 , E2 ) DFAs mit T (M1 ) = L1 und T (M2 ) = L2 . Dann akzeptiert folgender Automat M die Sprache L1 ∩ L2 : M = (Z1 × Z2 , Σ, δ, (s1 , s2 ), E1 × E2 ),

Warum sind Abschlusseigenschaften interessant? Zeigen, dass eine Sprache regul¨ar ist. Kompliziertere regul¨are Sprachen k¨ onnen aus einfacheren zusammengebaut werden. Zeigen, dass eine Sprache nicht regul¨ar ist. Manchmal ist es z.B. einfacher zu beweisen, dass das Komplement oder der Schnitt einer Sprache mit einer regul¨aren Sprachen nicht regul¨ar ist.

wobei δ((z1 , z2 ), a) = (δ1 (z1 , a), δ2 (z2 , a)). M akzeptiert ein Wort w genau dann, wenn sowohl M1 als auch M2 das Wort w akzeptieren. Sander Bruggink

Automaten und Formale Sprachen

178

Sander Bruggink

Automaten und Formale Sprachen

179

Regul¨ are Sprachen

Algorithmen f¨ ur Probleme

Regul¨ are Sprachen

Algorithmen f¨ ur Probleme

Algorithmen

Algorithmen

Wir diskutieren nun, ob es Verfahren bzw. Algorithmen gibt, um Fragestellungen bzw. Probleme f¨ ur regul¨are Sprachen zu l¨osen.

Probleme Wortproblem: Gegeben eine regul¨are Sprache L und w ∈ Σ∗ . Gilt w ∈ L? Leerheitsproblem: Gegeben eine regul¨are Sprache L. Gilt L = ∅?

Die allgemeine Form der Fragestellungen ist:

Endlichkeitsproblem: Gegeben eine regul¨are Sprache L. Ist L endlich?

Gegeben seien regul¨are Sprachen L1 , L2 . Gilt f¨ ur diese Sprachen, dass . . . ? Dabei nehmen wir an, dass regul¨are Sprachen als DFAs, NFAs, Grammatiken oder regul¨are Ausdr¨ ucke gegeben sind.

Sander Bruggink Regul¨ are Sprachen

Automaten und Formale Sprachen Algorithmen f¨ ur Probleme

Schnittproblem: Gegeben zwei regul¨are Sprachen L1 , L2 . Gilt L1 ∩ L2 = ∅?

Inklusionsproblem: Gegeben zwei regul¨are Sprachen L1 , L2 . Gilt L1 ⊆ L2 ? ¨ Aquivalenzproblem: Gegeben zwei regul¨are Sprachen L1 , L2 . Gilt L1 = L2 ?

178

Algorithmen

Sander Bruggink Regul¨ are Sprachen

Automaten und Formale Sprachen Algorithmen f¨ ur Probleme

179

Algorithmen

Wortproblem (w ∈ L?)

Leerheitsproblem (L = ∅?)

Gegeben sind L und w ∈ Σ∗ . L¨osung: Bestimme einen DFA M f¨ ur L und verfolge die Zustands¨ uberg¨ange von M, wie durch w vorgegeben. Endzustand wird erreicht w ∈L Nicht-Endzustand wird erreicht w 6∈ L

Sander Bruggink

Automaten und Formale Sprachen

180

Gegeben ist L.

L¨osung: Bestimme einen NFA M f¨ ur L. L = ∅ ⇐⇒ es gibt keinen Pfad von einem Start- zu einem Endzustand.

Sander Bruggink

Automaten und Formale Sprachen

181

Regul¨ are Sprachen

Algorithmen f¨ ur Probleme

Regul¨ are Sprachen

Algorithmen

Algorithmen f¨ ur Probleme

Algorithmen

Endlichkeitsproblem (Ist L endlich?) Gegeben ist L.

Schnittproblem (L1 ∩ L2 = ∅?)

L¨osung: Bestimme einen NFA M f¨ ur L. L ist unendlich ⇐⇒ in M gibt es unendlich viele Pfade von einem Start- zu einem Endzustand ⇐⇒ es gibt einen erreichbaren Zyklus in M, von dem aus wiederum ein Endzustand erreichbar ist.

Sander Bruggink Regul¨ are Sprachen

Automaten und Formale Sprachen Algorithmen f¨ ur Probleme

Gegeben sind L1 , L2 .

L¨osung: Bestimme DFAs M1 , M2 f¨ ur L1 , L2 und bilde das Kreuzprodukt von M1 , M2 . Wende dann den Leerheitstest auf das Kreuzprodukt an.

182

Algorithmen

Sander Bruggink Regul¨ are Sprachen

Automaten und Formale Sprachen Algorithmen f¨ ur Probleme

183

Algorithmen

¨ Aquivalenzproblem (L1 = L2 ?)

Inklusionsproblem (L1 ⊆ L2 ?)

Gegeben sind L1 , L2 .

Gegeben sind L1 , L2 .

L¨osung 1: Bestimme jeweils zu L1 und L2 die minimalen DFAs. Wenn die DFAs gleich sind (evtl. nach Umbenennung der Zust¨anden), dann sind L1 und L2 gleich.

L¨osung: Es gilt L1 ⊆ L2 genau dann, wenn L1 ∩ L2 = ∅. Da Schnitt und Komplement konstruktiv bestimmbar sind und ein Leerheitstest existiert, kann damit das Inklusionsproblem gel¨ost werden.

Sander Bruggink

Automaten und Formale Sprachen

L¨osung 2: Es gilt L1 = L2 genau dann, wenn L1 ⊆ L2 und L1 ⊇ L2 . Das Inklusionsproblem ist – wie wir vorher gesehen haben – l¨ osbar.

184

Sander Bruggink

Automaten und Formale Sprachen

185

Regul¨ are Sprachen

Algorithmen f¨ ur Probleme

Regul¨ are Sprachen

Algorithmen

Programmverifikation mit regul¨ aren Sprachen

Anwendung: Modellverifikation

Effizienzgesichtspunkte: Je nach dem in welcher Darstellung eine Sprache L gegeben ist, kann die Komplexit¨at der oben beschriebenen Verfahren sehr unterschiedlich ausfallen. ¨ Beispiel Aquivalenzproblem: L1 , L2 gegeben als DFAs Komplexit¨at O(n2 ) (d.h., quadratisch viele Schritte in der Gr¨oße der Eingabe) L1 , L2 gegeben als Grammatiken, regul¨are Ausdr¨ ucke oder NFAs Komplexit¨at NP-hart Das bedeutet unter anderem: es ist nicht bekannt, wie dieses Problem effizient gel¨ost werden kann.

System

Spezifikation

Modellierung

Modellierung

Systemmodell

endliche Automaten Model Checker

Mehr zum Thema Komplexit¨at in der Vorlesung Berechenbarkeit und ” Komplexit¨at“ im Wintersemester. Sander Bruggink Regul¨ are Sprachen

Automaten und Formale Sprachen Programmverifikation mit regul¨ aren Sprachen

186

Anwendung: Modellverifikation

Spezifikationsmodell

Yes

Sander Bruggink Regul¨ are Sprachen

No

Automaten und Formale Sprachen Programmverifikation mit regul¨ aren Sprachen

187

Anwendung: Verifikation Beispiel: wechselseitiger Ausschluss (eng.: mutual exclusion)

In unserem Fall: Das Systemmodell ist ein NFA Sys, der alle m¨oglichen Systemabl¨aufe akzeptiert. Das Spezifikationsmodell ist ein NFA Spec, der alle erlaubten Systemabl¨aufe akzeptiert.

L(Sys) ⊆ L(Spec)

Automaten und Formale Sprachen

Jeder Prozess hat einen sogenannten kritischen Bereich, in dem auf die Ressource zugegriffen wird. Es darf sich jeweils nur ein Prozess im kritischen Bereich befinden. Es stehen gemeinsame Variable zur Verf¨ ugung, u ¨ber die sich die Prozesse synchronisieren k¨ onnen. Diese Variablen sind jedoch keine Semaphore, d.h., eine atomare Operation, bei der gleichzeitig gelesen und geschrieben wird, ist nicht m¨ oglich.

Wir verifizieren eine Sicherheitseigenschaft. Das heißt, das Spec die erlaubte Abl¨aufe des Systems angibt. Wir ermitteln also, ob:

Sander Bruggink

Wir betrachten zwei Prozesse P1 , P2 , die auf eine gemeinsame Ressource zugreifen wollen.

Wir m¨ochten zeigen, dass der wechselseitige Ausschluss gew¨ahrleistet ist und dass gewisse Fairnessbedingungen (jeder Prozess kommt irgendwann an die Reihe) eingehalten werden. 188

Sander Bruggink

Automaten und Formale Sprachen

189

Regul¨ are Sprachen

Programmverifikation mit regul¨ aren Sprachen

Regul¨ are Sprachen

Anwendung: Verifikation

Programmverifikation mit regul¨ aren Sprachen

Anwendung: Verifikation

Versuch 1: Beide Prozesse P1 , P2 verwenden eine gemeinsame Boolesche Variable f , die mit false initialisiert wird. Vorgang:

Programmcode f¨ ur P1 , P2 1: 2: 3: 4: 5:

Gebe Automaten P1 und P2 f¨ ur die beiden Prozesse an.

while true do if (f = false?) then f := true Betrete kritischen Bereich ... Verlasse kritischen Bereich f := false end end

Sander Bruggink Regul¨ are Sprachen

Gebe einen Automaten F f¨ ur den Wert der Variable an. Berechne das Kreuzprodukt MSys der obigen drei Automaten (dieser Automat modelliert das Gesamtverhalten des Systems). Gebe einen Automaten MSpec f¨ ur die Spezifikation an. Finde heraus, ob L(MSys ) ⊆ L(MSpec ).

Automaten und Formale Sprachen Programmverifikation mit regul¨ aren Sprachen

190

Anwendung: Verifikation

Sander Bruggink Regul¨ are Sprachen

191

Anwendung: Verifikation Beschreibung der Abl¨aufe eines Prozesses i als endlicher Automat:

Wir verwenden folgendes Alphabet, bestehend aus den Programm-Befehlen und den Abfragen der Booleschen Variablen:

(f = true?)i

Σ = {(f := true)i , (f := false)i , (f = true?)i , (f = false?)i

1

| i ∈ {1, 2}}

(Synchronisation von Prozess i mit Variable f )

∆i

∪ {BkB i , VkB i | i ∈ {1, 2}}

Der Index i ∈ {1, 2} gibt an, ob die jeweilige Aktion vom ersten oder vom zweiten Prozess ausgef¨ uhrt wird.

Automaten und Formale Sprachen

192

(f = false?)i

∆i 2

Pi (f := true)i 3

(f := false)i 5

(Prozess i betritt/verl¨aßt kritischen Bereich).

Sander Bruggink

Automaten und Formale Sprachen Programmverifikation mit regul¨ aren Sprachen

VkB i

∆i

∆i

BkB i 4

∆i

mit ∆i = {(f :=true)i , (f :=false)i , (f =true?)i , (f =false?)i BkB j , VkB j } wobei j = 2, falls i = 1, und j = 1, falls i = 2.

Sander Bruggink

Automaten und Formale Sprachen

193

Regul¨ are Sprachen

Programmverifikation mit regul¨ aren Sprachen

Regul¨ are Sprachen

Anwendung: Verifikation

Anwendung: Verifikation

Beschreibung der Booleschen Variable f durch einen Automaten:

(f = false?)1 (f = false?)2

∆f

F

1

(f := false)1 (f := false)2

(f := true)1 (f := true)2 (f = true?)1 (f = true?)2

Programmverifikation mit regul¨ aren Sprachen

Die Sprache aller Abl¨aufe des Gesamtsystems ist T (P1 ) ∩ T (P2 ) ∩ T (F ). Der Automat WA, der alle Abl¨aufe beschreibt, die den wechselseitigen Ausschluß erf¨ ullen (beide Prozesse sind nicht gleichzeitig im kritischen Bereich) sieht folgendermaßen aus:

WA

(f := false)1 (f := false)2 2

Σ\{VkB 1, BkB 2}

(f := true)1 (f := true)2

BkB 1 2

1

VkB 1

∆f

3

Σ\{BkB 1, VkB 2}

BkB 2 Σ\{BkB 1, BkB 2}

Damit ist zu zeigen T (P1 ) ∩ T (P2 ) ∩ T (F ) ⊆ T (WA).

mit ∆f = {BkB 1 , VkB 1 , BkB 2 , VkB 2 }. Sander Bruggink Regul¨ are Sprachen

VkB 2

Automaten und Formale Sprachen Programmverifikation mit regul¨ aren Sprachen

194

Anwendung: Verifikation

Sander Bruggink Regul¨ are Sprachen

Automaten und Formale Sprachen Programmverifikation mit regul¨ aren Sprachen

195

Anwendung: Verifikation

Kodierung f¨ ur Grail:

Automaten-Dateien: p1.aut, p2.aut, f.aut, wa.aut.

(f := true)1

a

(f := true)2

A

(f := false)1

b

(f := false)2

B

(f = true?)1

c

(f = true?)2

C

(f = false?)1

d

(f = false?)2

D

BkB 1

x

BkB 2

X

VkB 1

y

VkB 2

Y

Sander Bruggink

Automaten und Formale Sprachen

Benutzte Grail-Werkzeuge: fmcross aut1 < aut2 > res – erzeugt das Kreuzprodukt von aut1 und aut2 und speichert das Ergebnis in res. fmcment aut > res – erzeugt das Komplement des aut und speichert es in res. fmenum aut – z¨ahlt die W¨ orter in der vom Automaten aut akzeptierten Sprache auf.

196

Sander Bruggink

Automaten und Formale Sprachen

197

Regul¨ are Sprachen

Programmverifikation mit regul¨ aren Sprachen

Regul¨ are Sprachen

Anwendung: Verifikation

Programmverifikation mit regul¨ aren Sprachen

Anwendung: Verifikation

Die entstehende Sprache ist nicht leer! Es gibt also Abl¨aufe, die die Bedingung des wechselseitigen Ausschluss verletzen. Versuch 2: Wir betrachten nun das Verfahren zum wechselseitigen Ausschluss von Lamport.

¨ Einer davon ist DdAXax. Ubersetzt ins urspr¨ ungliche Alphabet: (f = false?)2 (f = false?)1 (f := true)2 BkB 2 (f := true)1 BkB 1 . Grund f¨ ur die Verletzung des wechselseitigen Ausschlusses: Es gibt keine atomare Schreib- und Leseoperation. Daher k¨onnen beide Prozessen nacheinander die Variable auslesen, anschließend setzen beide die Variable und betreten den kritischen Bereich.

Dabei betrachten wir: zwei Prozesse P1 , P2 mit unterschiedlichem Programmcode und zwei Boolesche Variable f1 , f2 (beide initialisiert mit false).

Der Algorithmus ist also falsch!

Sander Bruggink Regul¨ are Sprachen

Automaten und Formale Sprachen Programmverifikation mit regul¨ aren Sprachen

198

Sander Bruggink Regul¨ are Sprachen

Anwendung: Verifikation

Anwendung: Verifikation

Prozess P1 :

Prozess P2

1: 2:

3: 4: 5:

while true do f1 := true while (f2 = true?) do skip end Betrete kritischen Bereich ... Verlasse kritischen Bereich f1 := false end

1: 2: 3: 4: 5: 6: 7:

skip : Null-Operation (hat keine Auswirkungen) Sander Bruggink

Automaten und Formale Sprachen

200

Automaten und Formale Sprachen Programmverifikation mit regul¨ aren Sprachen

199

while true do f2 := true if (f1 = true?) then do f2 := false while (f1 = true?) do skip end else Betrete kritischen Bereich ... Verlasse kritischen Bereich f2 := false end end

Sander Bruggink

Automaten und Formale Sprachen

201

Regul¨ are Sprachen

Programmverifikation mit regul¨ aren Sprachen

Regul¨ are Sprachen

Anwendung: Verifikation

Programmverifikation mit regul¨ aren Sprachen

Anwendung: Verifikation Automat f¨ ur den Prozess P1 : ∆

In diesem Fall betrachten wir folgendes Alphabet Σ:

1

∆ (f1 := true)1

Σ = {(f1 := false)i , (f2 := false)i , (f1 = false?)i , (f2 = false?)i ,

2

∆ (f2 = false?)1

(f2 = true?)1 (f1 := false)1

5

P1

BkB 1

(f1 := true)i , (f2 := true)i , (f1 = true?)i , (f2 = true?)i ,

BkB i , VkB i | i ∈ {1, 2}}

3

VkB 1

4





Dabei gilt, dass ∆ all m¨ ogliche Aktionen von Prozess 2 enth¨alt.

Sander Bruggink Regul¨ are Sprachen

Automaten und Formale Sprachen Programmverifikation mit regul¨ aren Sprachen

202

Anwendung: Verifikation

Sander Bruggink Regul¨ are Sprachen

Automaten f¨ ur die beiden Variablen: ∆1

(f1 = true?)2 (f1 = false?)2

(f1 = false?)2

4 ∆



(f2 := true)2

2

(f1 = true?)2

3

VkB 2

6 ∆

(f1 := true)1



(f1 := false)1

2

(f1 := true)1

∆1

5 ∆

(f1 := false)1

(f1 = true?)2

(f1 = false?)2 BkB 2

1

∆2

F1 (f2 = false?)1

1

F2 (f2 := false)2

∆ (f2 := false)2

(f2 := false)2 7

203

Anwendung: Verifikation

Automat f¨ ur den Prozess P2 :

1

Automaten und Formale Sprachen Programmverifikation mit regul¨ aren Sprachen

P2

(f2 := true)2 (f2 = true?)1

(f2 := false)2 2

(f2 := true)2

∆2

∆1 = {(f2 := true)2 , (f2 := false)2 , (f2 = true?)1 , (f2 = false?)1 BkB 1 , BkB 2 , VkB 1 , VkB 2

Dabei gilt, dass ∆ all m¨ogliche Aktionen von Prozess 1 enth¨alt.

Analog f¨ ur ∆2 . Sander Bruggink

Automaten und Formale Sprachen

204

Sander Bruggink

Automaten und Formale Sprachen

205

Regul¨ are Sprachen

Programmverifikation mit regul¨ aren Sprachen

Regul¨ are Sprachen

Anwendung: Verifikation

Anwendung: Verifikation

Kodierung f¨ ur Grail:

Zusammenfassung Verifikation:

(f1 := true)1

a

(f2 := true)2

A

BkB 1

x

(f1 := false)1

b

(f2 := false)2

B

BkB 2

X

(f2 = true?)1

c

(f1 = true?)2

C

VkB 1

y

(f2 = false?)1

d

(f1 = false?)2

D

VkB 2

Y

Wir haben mit Hilfe von endlichen Automaten zwei Protokolle modelliert, die wechselseitigen Ausschluss realisieren sollen. Mit Hilfe der L¨ osungsverfahren f¨ ur das Inklusionsbzw. Schnittproblem konnten wir u ufen, ob diese Protokolle ¨berpr¨ tats¨achlich wechselseitigen Ausschluss realisieren. Das bedeutet: die vorgestellten Verfahren k¨ onnen zur Programmverifikation eingesetzt werden.

Jetzt sind die Systemabl¨aufe in den erlaubten Systemabl¨aufe enthalten. Das Protokoll ist also korrekt.

Sander Bruggink

Automaten und Formale Sprachen

Programmverifikation mit regul¨ aren Sprachen

206

Sander Bruggink

Automaten und Formale Sprachen

207

Suggest Documents