Modellierung nebenläufiger Systeme

Transcription

Modellierung nebenläufiger Systeme
Modellierung nebenläufiger Systeme
(Notizen zur Vorlesung im Sommersemester 2014
an der Universität Duisburg-Essen)
Barbara König
3. Juli 2014
Inhaltsverzeichnis
1 Einleitung
2
2 Transitionssysteme
2.1 Eigenschaften der Sprachäquivalenz . . . .
2.2 Eigenschaften der Bisimularität . . . . . .
2.3 Bestimmung bisimularer Zustandspaare .
2.4 Interne Aktionen (τ -Transitionen) . . . .
2.5 Vergleich: Sprachäquivalenz, Bisimularität
.
.
.
.
.
3
3
4
5
7
7
3 Prozesskalküle (CCS)
3.1 Modulo-Bisimulation/Up-To-Techniken . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Kongruenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Fallstudien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
9
9
10
4 Petrinetze
4.1 Entfaltungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Endliche, vollständige Präfixe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
11
12
5 Graphtransformation
14
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Kapitel 1
Einleitung
Diese Notizen enthalten Bemerkungen, weiterführende Beispiele und Beweise, die in den Folien zur
Vorlesung “Modellierung nebenläufiger Systeme” so nicht enthalten sind. Sie sind als Ergänzung
zur Vorlesung, zur Literatur und zu den Folien zu verstehen, jedoch nicht als eigenständiges Skript.
2
Kapitel 2
Transitionssysteme
Der Begriff der Bisimularität wurde im Zusammenhang mit der Prozessalgebra CCS (Calculus of
Communicating Systems) in [Par81, Mil80] eingeführt. Weitere Informationen zu CCS befinden
sich in [Mil89].
2.1
Eigenschaften der Sprachäquivalenz
Auf den Folien gibt es ein Beispiel für ein Transitionssystem T = (Z, →) mit zwei Zuständen
z, z 0 , die S-sprachäquivalent, jedoch nicht S ω -sprachäquivalent sind. Dieses Transitionssystem
hat unendlich viele Zustände. Folgender Satz zeigt, dass es kein Gegenbeispiel mit endlich vielen Zuständen geben kann. Der Beweis ist verblüffend ähnlich zum Beweis des Endlichkeitssatzes
in der Logik. (Der folgende Satz und sein Beweis sind nicht Teil des prüfungsrelevanten Stoffes).
Satz 2.1.1 Gegeben sei ein Transitionssystem T = (Z, →), sowie z, z 0 ∈ Z mit S(z) = S(z 0 ),
S ω (z) 6= S ω (z 0 ). Dann ist Z unendlich.
Beweis: Angenommen Z sei endlich. Sei w = a1 a2 a3 · · · ∈ S ω (z), aber w ∈
/ S ω (z 0 ) (analog bei
ω
ω 0
w∈
/ S (z), w ∈ S (z )). Es gilt für die Menge der Präfixe von w:
Pref({w}) ⊆ S(z) = S(z 0 )
Das heißt, es gibt folgende Abläufe:
a
z 0 →1 z11
a
a
a
a
z 0 →1 z21 →2 z22
a
z 0 →1 z31 →2 z32 →3 z33
..
.
Für i = 1, 2, . . . tritt ein ziji unendlich oft auf, da Z endlich ist. Wir streichen alle anderen Abläufe.
Nach jedem Schritt sind immer noch unendlich viele Abläufe vorhanden, die im Präfix der Länge
i übereinstimmen. Wir erhalten dadurch den unendlichen Ablauf
a
a
a
a
z 0 →1 z1j1 →2 z2j2 →3 z3j3 →4 . . .
Dies ist jedoch ein Widerspruch zu w = a1 a2 ... ∈
/ S ω (z 0 )
3
2
2.2
Eigenschaften der Bisimularität
Wir zeigen zunächst einige Eigenschaften der Bisimularität ∼:
Satz 2.2.1 (Bisimularität ist eine Bisimulation) Sei T = (Z, →) ein Transitionssystem. Für
die Bisimularität ∼ auf Z gelten folgende Eigenschaften:
S
• ∼ = {R | R ⊆ Z × Z, R ist Bisimulation}
• Die Bisimularität ∼ ist selbst eine Bisimulationsrelation.
Beweis:
• Das ist im wesentlichen die Definition der Bisimularität und es gibt eigentlich nicht viel zu
beweisen. Trotzdem kann man diese Gleichheit noch etwas genauer aufschlüsseln, indem wir
wechselseitige Inklusion zeigen:
⊆: Seien z1 , z2 zwei Zustände mit z1 ∼ z2 . Dann gibt es nach Definition eine BisimulationsRelation R mit (z1 , z2 ) ∈ R. Diese Relation R ist S
dann auch Teil der Vereinigung auf der
rechten Seite der Gleichung und es gilt (z1 , z2 ) ∈ {R | R ⊆ Z ×Z, R ist Bisimulation}.
S
⊇: Seien z1 , z2 zwei Zustände mit (z1 , z2 ) ∈ {R | R ⊆ Z × Z, R ist Bisimulation}. Dann
gibt es mindestens eine Bisimulation R mit (z1 , z2 ) ∈ R und damit gilt nach Definition
z1 ∼ z2 .
• Wir zeigen nun, dass die Bisimularität ∼ selbst eine Bisimulationsrelation ist. Seien also
z1 , z2 zwei Zustände mit z1 ∼ z2 . Zunächst stellen wir fest, dass es eine Bisimulation R
a
geben muss mit (z1 , z2 ) ∈ R. Wir müssen nun zeigen, dass es für jede Transition z1 → z10
a
eine Transition z2 → z20 gibt, so dass z10 ∼ z20 (und umgekehrt).
a
Sein nun also z1 → z10 eine beliebige von z1 ausgehende Transition. Wegen (z1 , z2 ) ∈ R und
a
der Tatsache, dass R eine Bisimulation ist, gibt es eine Transition z2 → z20 mit (z10 , z20 ) ∈ R.
0
0
Und aus R ⊆ ∼ folgt dann z1 ∼ z2 .
Der andere Fall ist analog.
2
Außerdem erfüllen Bisimulationen gewisse Abschlusseigenschaften:
Satz 2.2.2 (Abschlusseigenschaften) Sei T = (Z, →) ein Transitionssystem und seien R1 , R2
Bisimulationen. Dann sind folgende Relationen ebenfalls Bisimulationen:
(a) Id Z = {(z, z) | z ∈ Z}.
(b) R1−1 = {(z2 , z1 ) | (z1 , z2 ) ∈ R1 }
(c) R1 R2 = {(z1 , z3 ) | (z1 , z2 ) ∈ R1 , (z2 , z3 ) ∈ R2 }
(d) R1 ∪ R2
Beweis: Wir zeigen nur die dritte Aussage, d.h., wir beweisen, dass R1 R2 eine Bisimulation ist.
Die anderen Aussagen können ähnlich bewiesen werden.
Sei (z1 , z3 ) ∈ R1 R2 . Dann gibt es einen Zustand z2 ∈ Z, so dass (z1 , z2 ) ∈ R1 und (z2 , z3 ) ∈ R2 .
a
Wir nehmen nun an, dass von z1 aus der Übergang z1 → z10 möglich ist. Aus (z1 , z2 ) ∈ R1 und
a
der Tatsache, dass R1 eine Bisimulation ist, folgt nun, dass z2 → z20 und (z10 , z20 ) ∈ R1 . Nun nutzen
a
wir noch die Tatsache, dass R2 eine Bisimulation ist, woraus sich eine Transition z3 → z30 ergibt
mit (z20 , z30 ) ∈ R2 . Abschließend erhalten wir ein Paar (z10 , z30 ) ∈ R1 R2 .
Der andere Fall (Übergang von z3 aus) kann analog bewiesen werden.
2
4
2.3
Bestimmung bisimularer Zustandspaare
Wir betrachten nun die auf den Folien beschrieben Methode zur Bestimmung von bisimularen
Zustandspaaren und die Folge ∼0 , ∼1 , ∼2 , . . . von Relationen, die sich dabei ergibt. Wir zeigen
zunächst folgendes Lemma:
Lemma 2.3.1 Es gilt:
(a) ∼n ist eine Äquivalenzrelation für alle n ∈ N.
(b) z ∼n z 0 impliziert z ∼m z 0 für alle m ≤ n.
(c) z ∼ z 0 impliziert z ∼n z 0 für alle n ∈ N.
(d) ∼n =∼n+1 impliziert ∼n =∼m für alle m ≥ n.
Beweis: Wir beweisen nur die dritte Aussage durch Induktion über n.
n = 0: In diesem Fall gilt immer z ∼0 z 0 .
n → n + 1: Seien z, z 0 zwei bisimulare Zustände mit z ∼ z 0 . Aufgrund der Induktionsvoraussetzung
wissen wir bereits, dass z ∼n z 0 gilt. Nun ist zu zeigen, dass auch z ∼n+1 z 0 gilt, d.h.,
wir müssen zeigen, dass z, z 0 die entsprechenden Voraussetzungen erfüllen, um von dem
Verfahren in ∼n+1 aufgenommen zu werden.
a
Sei z1 ein Zustand mit z → z1 . Wegen z ∼ z 0 und der Tatsache, dass ∼ eine Bisimulaa
tion ist, gibt es einen Zustand z2 mit z 0 → z2 und z1 ∼ z2 . Daraus folgt aber mit der
Induktionsvoraussetzung z1 ∼n z2 .
Da die entsprechende Bedingung auch für die Übergänge von z 0 gezeigt werden kann, folgt
daraus z ∼n+1 z 0 .
2
Als nächstes zeigen wir, dass die Methode zur Bestimmung der bisimularen Zustandspaare
unter gewissen Voraussetzungen tatsächlich korrekt ist.
Satz 2.3.2 Sei T = (Z, →) ein Transitionssystem, das endlich verzweigt ist, das heißt für jeden
Zustand z ist die Menge
a
{z 0 | ∃a ∈ Act : z → z 0 }
endlich.
T
Dann gilt z ∼ z 0 genau dann, wenn z ∼n z 0 für alle n ∈ N. In anderen Worten: ∼= n∈N ∼n .
0
Beweis: Aus Lemma 2.3.1(c) folgt direkt, dass z ∼ z 0 auch z ∼T
n z für alle n ∈ N impliziert.
Wir zeigen nun die umgekehrte Richtung und setzen R = n∈N ∼n . Sei also (z, z 0 ) ∈ R, das
a
heißt z ∼n z 0 für alle n ∈ N. Wir nehmen an, dass es eine Transition z → z∗ gibt. Für jedes n
0
0 a
gibt es wegen z ∼n+1 z eine Transition z → zn mit z∗ ∼n zn . Da das Transitionssystem endlich
verzweigt ist, muss mindestens ein Zustand zk unendlich oft in der Folge z0 , z1 , z2 , . . . vorkommen.
Das heißt, für jedes beliebige m ∈ N gibt es ein n ≥ m mit zn = zk . Aus Lemma 2.3.1(b) folgt
dann, dass z∗ ∼m zk für alle m ∈ N gilt. Und daraus folgt (z∗ , zk ) ∈ R.
Jeder Übergang von z 0 kann analog behandelt werden und daraus folgt, dass R eine Bisimulation ist und damit in ∼ enthalten sein muss.
2
Beispiel 2.3.3 Wir zeigen nun, dass Satz 2.3.2 nicht für Transitionssysteme gilt, die unendlich
verzweigt sind. Dazu betrachten wir das folgende Transitionssystem. Dabei gehen sowohl von z
als auch von z 0 endliche Pfade der Längen 1, 2, 3, . . . aus, d.h., einer für jede natürlich Zahl n ∈ N.
Zusätzlich geht von z noch ein unendlicher Pfad aus.
5
z0
a
a
z̄
a
a
a
...
a
a
a
a
a
a
a
a
...
a
...
a
a
a
a
a
...
z
a
a
...
unendlicher
Pfad
endliche Pfade
Um die Folge von Relationen ∼i beschreiben zu können, verwenden wir folgende Notation:
a
B0
=
{ẑ | ẑ →}
6
Bi
=
{ẑ | ∃z1 , . . . , zi : ẑ → z1 → . . . → zi →}\{z,
6
z0}
(Blätter)
a
a
a
a
(für i ≥ 1)
Dabei enthält Bi alle Zustände, von denen ein Weg möglich ist, der genau die Länge i hat. Nur
die Zustände z, z 0 werden ausgeschlossen.
Während ∼0 noch alle Zustände in Beziehung setzt, werden bei ∼1 alle Zustände in B0 in einer
neuen Äquivalenzklasse zusammengefasst. In ∼2 werden dann auch z und z 0 von den restlichen
Zuständen unterschieden, denn von ihnen aus gibt es sowohl Übergänge zu Zuständen, die in der
Relation ∼1 stehen, als auch zu Zuständen, die nicht in dieser Relation steht. Das unterscheidet
z, z 0 von allen übrigen Zuständen.
Insgesamt ergibt sich folgende Relationsfolge, wobei die Äquivalenzrelationen durch ihre Äquivalenzklassen beschrieben werden:
∼0 : Z
∼1 : B0 , Z\B0
∼2 : B0 , B1 , {z, z 0 }, Z\(B0 ∪ B1 ∪ {z, z 0 })
∼3 : B0 , B1 , B2 , {z, z 0 }, Z\(B0 ∪ · · · ∪ B2 ∪ {z, z 0 })
∼4 : . . .
Insbesondere gibt es in jeder Relation immer Zustände auf endlichen Pfaden, die mit den
Zuständen auf dem unendlichen Pfad in Relation stehen. Deshalb gibt es auch immer zu dem
a
Übergang z → z̄ einen korrespondierenden Übergang von z 0 .
Damit gilt z ∼n z 0 für alle n ∈ N, die Zustände z und z 0 sind jedoch nicht bisimular. Im
Bisimulationsspiel kann Spieler I seinen Spielstein vom Zustand z aus auf den unendlichen Pfad
bewegen, dessen Übergänge von Spieler II irgendwann nicht mehr simuliert werden können.
Wir beschreiben nun noch, wie die Bestimmung von bisimularen Zuständen bei endlichen
Transitionssystemen funktioniert.
Satz 2.3.4 Für jedes endliche Transitionssystem gilt:
(a) Die Methode zur Bestimmung von bisimularen Zustandspaaren terminiert immer und
(b) gibt die korrekte Bisimularität ∼ zurück.
6
Beweis: Das Verfahren verfeinert die Relationen ∼n in jedem Schritt immer weiter. Bei endlich
vielen Zuständen kann diese Verfeinerung jedoch nur endlich oft vonstatten gehen, bevor die Folge
von Relationen stationär wird, d.h., ∼n =∼n+1 gilt.
Das heißt, das Verfahren terminiert und nach Lemma 2.3.1 und Satz 2.3.2 wird folgende Relation ausgegeben:
\
∼n =
∼i =∼
i∈N
2
2.4
Interne Aktionen (τ -Transitionen)
Im folgenden beschäftigen wir uns mit dem Umgang mit internen Aktionen, repräsentiert durch sogenannte τ -Transitionen. Insbesondere beweisen wir die alternative Charakterisierung einer schwachen Bisimulation.
Satz 2.4.1 Eine Relation R ⊆ Z ×Z ist eine schwache Bisimulation schwache Bisimulation genau
dann, wenn für jedes Paar (z1 , z2 ) ∈ R und für jedes a ∈ Act gilt:
a
â
a
â
• für jedes z10 mit z1 → z10 gibt es ein z20 mit z2 ⇒ z20 und (z10 , z20 ) ∈ R.
• für jedes z20 mit z2 → z20 gibt es ein z10 mit z1 ⇒ z10 und (z10 , z20 ) ∈ R.
Dabei ist â = a, falls a ∈ Act\{τ }, und τ̂ = ε.
Beweis: Jede schwache Bisimulation erfüllt die oben definiert Eigenschaft, da jede starke Transition
auch eine schwache Transition ist.
Es ist daher noch zu zeigen, dass jede Relation, die die Eigenschaft erfüllt, auch eine schwache
Bisimulation ist. Angenommen, R sei eine solche Relation und weiterhin sei (z1 , z2 ) ∈ R. Wir
a
müssen nun zeigen, dass es zu jedem Übergang z1 ⇒ z10 für a ∈ (Act\{τ }) ∪ {ε} auch einen
a
0
0
0
Übergang z2 ⇒ z2 gibt mit (z1 , z2 ) ∈ R (und umgekehrt).
Wir unterscheiden folgende Fälle:
ε
a = ε: Falls z1 = z10 , so ist z2 ⇒ z2 eine simulierende Transition.
τ
τ
τ
Andernfalls gibt es eine Folge von τ -Schritten: z1 → x1 → . . . → xn = z10 . Jeder dieser
ε
τ -Übergänge kann von z2 wie folgt simuliert werden (Beweis durch Induktion über n): z2 ⇒
ε
ε
0
0
0
y1 ⇒ . . . ⇒ yn = z1 mit (xi , yi ) ∈ R für 1 ≤ i ≤ n. Insbesondere gilt also (z1 , z2 ) =
(xn , yn ) ∈ R.
Außerdem kann man die Folge von schwachen ε-Übergängen, die von z2 ausgeht, wie folgt
ε
zusammenfassen: z2 ⇒ z20 .
τ
τ
τ
a
τ
τ
a ∈ Act\{τ }: In diesem Fall gilt z1 → x1 → . . . → xj → xj+1 → . . . → xn = z10 und die
Übergänge können analog zum vorhergehenden Fall durch die entsprechenden schwachen
Transitionen simuliert werden.
2
2.5
Vergleich: Sprachäquivalenz, Bisimularität
Wir zeigen nun die Zusammenhänge zwischen Sprachäquivalenz und Bisimularität: aus der Bisimularität folgt S ∞ -Sprachäquivalenz, und damit auch S- und S ω -Sprachäquivalenz.
Satz 2.5.1 (Bisimularität impliziert S ∞ -Sprachäquivalenz) Seien z, z 0 zwei bisimulare Zustände, d.h., es gilt z ∼ z 0 . Dann sind z und z 0 auch S ∞ -sprachäquivalent.
7
Beweis: Wir nehmen an, daß z1 ∼ z2 gilt, d.h. es gibt eine Bisimulation R mit (z1 , z2 ) ∈ R.
Wir müssen zeigen , dass S ∞ (z) = S ∞ (z 0 ) gilt. Um S ∞ (z) ⊆ S ∞ (z 0 ) zu zeigen (die andere
Richtung geht analog), nehmen wir ein Wort w ∈ S ∞ (z). Das heißt, Spieler I kann im Bisimulationsspiel die (endliche oder unendliche) Zeichenfolge w von z aus spielen. Damit muss Spieler II
in der Lage sein, diese Zeichenfolge zu simulieren, d.h., w liegt auch in S ∞ (z 0 ).
2
8
Kapitel 3
Prozesskalküle (CCS)
Mehr zu Prozesskalkülen findet man in [BPS01, Fok00]. Der Prozesskalkül CCS, der in der Vorlesung vorrangig behandelt wird, wird in [Mil80, Mil89] behandelt. Weitere wichtige Prozesskalküle
sind CSP [Hoa85], der π-Kalkül [MPW89b, MPW89a, Mil91, SW01], der Spi-Kalkül [AG97] und
der Ambient-Kalkül [CG98].
3.1
Modulo-Bisimulation/Up-To-Techniken
Eine allgemeine Theorie zu Up-To-Techniken wird in [MS92] beschrieben.
Wir zeigen hier die Korrektheit der Bisimulation modulo starke Bisimularität.
Satz 3.1.1 (Bisimulation modulo starke Bisimularität (Satz)) Sei R eine Bisimulation modulo starke Bisimularität. Dann gilt: R ⊆ ∼. Insbesondere ist gilt für jedes Paar von Prozessen
(P, Q) ∈ R, dass P ∼ Q.
Beweis: Sei R eine Bisimulation modulo starke Bisimularität. Wir betrachten die Relation
R̂ = ∼ R ∼ = {(P1 , P2 ) | ∃P10 , P20 : P1 ∼ P10 R P20 ∼ P2 }
und zeigen, dass diese Relation eine Bisimulation ist.
a
Sei also (P1 , P2 ) ∈ R̂ mit P1 ∼ P10 R P20 ∼ P2 und es gelte P1 → Q1 . Wegen P1 ∼ P10 folgt dann
a
a
P10 → Q01 und Q1 ∼ Q01 . Da nun R eine Bisimulation ist, erhalten wir P20 → Q02 und (Q2 , Q02 ) ∈ R.
a
Und zuletzt folgt aus P20 ∼ P2 , dass P2 → Q2 und Q02 ∼ Q2 , insgesamt (Q1 , Q2 ) ∈ R̂.
a
a
Umgekehrt gibt es für jeden Übergang P2 → Q2 einen Übergang P1 → Q1 mit (Q1 , Q2 ) ∈ R̂.
Graphisch läßt sich das folgendermaßen darstellen:
P1
∼
P10
∼
Q01
P20
∼R∼
Q02
a
a
Q1
R
∼
P2
∼
Q2
a
a
Aus Q1 ∼∼ R ∼∼ Q2 folgt aufgrund der Transitivität von ∼, dass Q1 ∼ R ∼ Q2 , d.h., Q1 R̂ Q2 ,
und damit ist R̂ eine Bisimulation. Und das impliziert R ⊆ R̂ ⊆ ∼.
2
3.2
Kongruenzen
Wir zeigen nun, dass starke Bisimularität eine Kongruenzrelation bezüglich der CCS-Operatoren
ist:
9
Satz 3.2.1 (∼ ist eine Kongruenzrelation) Es gelte P1 ∼ P2 . Dann gilt auch:
(a) a.P1 ∼ a.P2
(b) P1 + Q ∼ P2 + Q
(c) P1 | Q ∼ P2 | Q
(d) P1 \L ∼ P2 \L
(e) P1 [f ] ∼ P2 [f ]
Beweis:
a
(a) Für a.P1 ist nur ein a-Übergang möglich und ein solcher Übergang a.P1 → P1 kann von
a
a.P2 mit a.P2 → P2 beantwortet werden. Nach Voraussetzung gilt P1 ∼ P2 . (Der einzige
a-Übergang von a.P2 kann analog behandelt werden.)
Damit ist gezeigt, dass R = {(a.P1 , a.P2 )} eine Modulo-Bisimulation ist und es folgt, dass
a.P1 ∼ a.P2 .
(b) Für a-Übergange von P1 + Q gibt es zwei zu betrachtende Fälle:
a
• Es handelt sich um einen Übergang von P1 , d.h., P1 → P10 . Wegen P1 ∼ P2 kann P2
a
diese Transition mit P2 → P20 simulieren, so dass P10 ∼ P20 gilt. Und darauf folgt die
a
Existenz eines Übergangs P2 + Q → P20 .
a
a
• Es handelt sich um einen Übergang von Q, d.h., Q → Q0 . Damit gilt P2 + Q → Q0 und
Q0 , Q0 sind trivialerweise bisimular.
(Die Übergänge von P2 + Q können analog behandelt werden.)
Wie im vorherigen Fall (Präfix) ergibt sich auch hier, dass P1 + Q ∼ P2 + Q.
(c) Dieser Fall ist ein klein wenig komplizierter. Wir zeigen, dass die Relation
R = {(S1 | Q̂, S2 | Q̂) | S1 ∼ S2 , Q̂ beliebig}
eine starke Bisimulation ist. Da (P1 | Q, P2 | Q) in dieser Relation enthalten ist, folgt daraus
die Behauptung.
a
Für einen a-Übergang S1 | Q̂ → R gibt es drei mögliche Fälle:
a
a
• S1 → S10 und R = S10 | Q̂. Wegen S1 ∼ S2 folgt, dass S2 → S20 mit S10 ∼ S20 . Damit aber
a
auch S2 | Q̂ → S20 | Q̂ und (S10 | Q̂, S20 | Q̂) ∈ R.
a
a
• Q̂ → Q̂0 und R = S1 | Q̂0 . Dann gilt S2 | Q̂ → S2 | Q̂0 und (S1 | Q̂0 , S2 | Q̂0 ) ∈ R.
b
b
b
• a = τ , S1 → S10 , Q̂ → Q̂0 und R = S10 | Q̂0 . Wegen S1 ∼ S2 gilt S2 → S20 und S10 ∼ S20 .
τ
Daraus ergibt sich S2 | Q̂ → S20 | Q̂0 und (S10 | Q̂0 , S20 | Q̂0 ) ∈ R.
Mit dem analogen Argument für die Übergänge von S2 | Q̂ kann der Beweis abgeschlossen
werden.
(d) Der Beweis verläuft ähnlich zum Fall der parallelen Komposition.
(e) Der Beweis verläuft ähnlich zum Fall der parallelen Komposition.
2
3.3
Fallstudien
Die Fallstudie zum wechselseitigen Ausschluss ist inspiriert durch [Wal89].
10
Kapitel 4
Petrinetze
Grundlegendes zu Petrinetzen findet man in [Rei86, Mur89, Bau96, EH08]. Details zu Entfaltungen
kann man beispielsweise [ERV02] entnehmen.
4.1
Entfaltungen
Lemma 4.1.1 Sei M der Cut einer Konfiguration. Dann gilt für alle s, s0 ∈ M , dass s co s0 . Das
heißt, M ist nebenläufig.
2
Beweis: Ohne Beweis.
Satz 4.1.2 (Korrektheit der Entfaltung) Sei N ein Petrinetz und U die dazugehörige Entfaltung mit Abbildung ϕ von den Transitionen und Stellen von U auf die Transitionen und Stellen
von N . Dann gilt:
• Sei m eine erreichbare Markierung in N . Dann gibt es eine Konfiguration C von U mit Cut
M , so dass gilt: m = ϕ⊕ (M ).
• Sei C eine Konfiguration von U mit Cut M . Dann gilt: die Markierung m von N , die
definiert ist durch m = ϕ⊕ (M ), ist eine erreichbare Markierung von N .
Beweis: Sei N = (S, T, • (), ()• , m0 ) und U = (SU , TU , • (), ()• , mU ).
• Sei m eine erreichbare Markierung von N , d.h., es gibt eine Folge t1 , . . . , tn ∈ T von Transitionen mit m0 [t1 im1 . . . mn−1 [tn imn = m. Wir zeigen nun die Behauptung durch Induktion
über n.
n = 0: In diesem Fall gilt m = m0 . Die initiale Markierung m0 entspricht aber genau der
initialen Markierung mU der Entfaltung und ϕ bildet mU auf m0 ab.
Wir betrachten daher die Konfiguration C = ∅, die den Cut Set(mU ) hat. Damit sind
alle Bedingungen erfüllt.
n − 1 → n: Nach Induktionsvoraussetzung gibt es eine Konfiguration C 0 mit Cut M 0 , so dass
mn−1 = ϕ⊕ (M 0 ). Wegen • tn ≤ mn−1 gibt es eine Teilmenge V ⊆ M 0 mit • tn = ϕ⊕ (V ).
Da V Teilmenge eines Cuts ist, gilt nach Lemma 4.1.1, dass V nebenläufig ist. Da
außerdem das Bild von V Vorbedingung der Transition tn ist, wurde im Laufe der
Entfaltung eine Transition t0 erzeugt mit Set(• t0 ) = V , Set(t0• ) = {s01 , . . . , s0m } und
ϕ(t0 ) = tn , ϕ⊕ ({s01 , . . . , s0m }) = tn • .
Die Transition t0 ist noch nicht in C 0 enthalten, da t0 konsumierend ist und damit V
nicht Teilmenge des Cuts wäre. Wir betrachten nun die Menge C = C 0 ∪{t0 } und zeigen,
dass sie die geforderte Konfiguration ist.
11
C Konfiguration: Zunächst zeigen wir, dass C unter Kausalität abgeschlossen ist: t0
ist genau von den Transitionen abhängig, die Gründe von V sind. Diese Transitionen sind jedoch bereits in C 0 enthalten, ansonsten wäre V nicht Teilmenge des
Cuts.
Sei t00 ∈ C 0 mit t0 #t00 . Damit gibt es Transitionen u0 , u00 , die in direktem Konflikt
stehen und für die u0 ≤U t0 und u00 ≤U t00 gilt. Falls u0 6= t0 , dann folgt aufgrund
der Abgeschlossenheit unter Kausalität, dass u0 , u00 ∈ C 0 . Das steht jedoch im
Widerspruch dazu, dass C 0 keine Konflikte enthält.
Falls jedoch u0 = t0 gilt, so sind t0 und u00 in direktem Konflikt, d.h., sie konsumieren
eine gemeinsame Stelle s ∈ V . Da s in der Vorbedingung einer Transition liegt,
die in der Konfiguration C 0 ist, kann s nicht im Cut M 0 liegen. Das steht im
Widerspruch zu V ⊆ M 0 .
Insgesamt ergibt sich, dass es keine Transition t00 geben kann, die mit t0 in Konflikt
steht.
Cut von C: Der Cut von C ist offensichtlich M = (M 0 \V ) ∪ {s01 , . . . , s0m } und es gilt
m = mn−1 • tn ⊕ tn • . Aufgrund von ϕ⊕ (V ) = • tn and ϕ({s01 , . . . , s0m }) = tn • folgt
dann m = ϕ⊕ (M ).
• Wir betrachten nun eine Konfiguration C von U und ihren Cut M . Sei m definiert durch
m = ϕ⊕ (M ).
Wir zeigen nun durch Induktion über n = |C|, dass m erreichbar ist.
n = 0: In diesem Fall gilt C = ∅ und für den Cut gilt M = Set(mU ). Daher ist m =
ϕ⊕ (M ) = m0 und m0 ist trivialerweise erreichbar.
n − 1 → n: Sei |C| = n und sei t0 ∈ C eine Transition, von der keine weitere Transition
in C kausal abhängig ist. Eine solche Transition muss existieren, da die Kausalität in
einem Occurrence-Netz azyklisch ist. Außerdem ist C 0 = C\{t0 } eine Konfiguration. Des
weiteren sei M 0 der Cut von C 0 und es gilt Set(• t0 ) ⊆ M 0 , da erstens alle Transitionen,
von denen t0 kausal abhängig ist, in C 0 enthalten sind und zweitens keine Transition
u ∈ C 0 eine Stelle aus Set(• t0 ) konsumiert, denn u wäre in Konflikt zu t0 .
Außerdem gilt M 0 ∩ Set(t0• ) = ∅, denn die Stellen in M 0 sind entweder in der initialen
Markierung oder von Transitionen erzeugt, die verschieden von t0 sind. Da jede Stelle
in der Entfaltung eindeutig erzeugt ist, muss der Schnitt der Mengen leer sein.
Wegen |C 0 | = n − 1 gibt es nach Induktionsvoraussetzung eine erreichbare Markierung
m0 mit m0 = ϕ⊕ (M 0 ).
Wir setzen t = ϕ(t0 ). Aufgrund der Definition von ϕ gilt ϕ(Set(• t0 )) = Set(• t) (und
damit ϕ⊕ (Set(• t0 )) = • t) und ϕ(Set(t0• )) = Set(t• ) (und damit ϕ⊕ (Set(t0• )) = t• ).
Wegen Set(• t0 ) ⊆ M 0 und der Tatsache, dass alle Gewichte gleich eins sind, gilt • t ≤ m0
und damit ist t unter m0 aktiviert.
Durch das Feuern von t erhält man m0 • t ⊕ t• . Wegen M = M 0 \Set(• t0 ) ∪ Set(t0• )
(und Set(• t0 ) ⊆ M 0 , M 0 ∩ Set(t0• ) = ∅) folgt dann m = ϕ⊕ (M ) = ϕ⊕ (M 0 ) • t ⊕ t• =
m0 • t ⊕ t• . Da m0 erreichbar ist, ist damit auch m erreichbar.
2
4.2
Endliche, vollständige Präfixe
Satz 4.2.1 Sei N ein sicheres Netz und sei P das Präfix der Entfaltung, das dadurch entsteht,
dass die Nachbedingungen von Cutoff-Transitionen (und alles was davon kausal abhängig ist) nicht
mehr entfaltet werden. Dann gilt:
• P ist endlich.
12
• Für jede erreichbare Markierung m gibt es eine Konfiguration von P (ohne Cutoffs) mit Cut
M , so dass ϕ⊕ (M ) = m. (Dabei ist ϕ die Abbildung von P auf das ursprüngliche Netz N ,
die bei der Entfaltung entsteht.)
Beweis: Wir führen zunächst einen Widerspruchsbeweis und nehmen an, dass P unendlich ist. Wir
definieren die Tiefe einer Transition t in P als Länge der längsten Kette t0 <P t1 <P · · · <P t.
Man kann leicht sehen, dass es bis zu einer festen Tiefe k nur endlich viele Transitionen geben
kann. Das bedeutet aber aufgrund der Unendlichkeit von P , dass es eine unendlich lange Kette
t0 <P t1 <P <P t2 <P . . . geben muss. Für diese Kette gilt:
bt0 c ⊂ bt1 c ⊂ . . . ,
|{z} |{z}
C0
C1
also auch |bt0 c| < |bt1 c| < . . . . Da die Cuts M0 , M1 , M2 , . . . von C0 , C1 , C2 , . . . den Markierungen
von N entsprechen und es nur endlich viele Markierungen gibt, folgt daraus, dass ϕ⊕ (Mi ) =
ϕ⊕ (Mj ) für zwei Cuts Mi , Mj mit i < j. Demnach ist tj eine Cutoff-Transition und es kann keine
weiteren Transitionen geben, die von tj kausal abhängig sind. Das ist ein Widerspruch zur Existenz
der unendlichen Kette.
Wir zeigen nun, dass P vollständig ist. Sei m eine erreichbare Markierung von N . Das bedeutet
nach Satz 4.1.2, dass es eine Konfiguration C 0 der Entfaltung U(N ) gibt mit Cut M 0 , so dass
ϕ⊕ (M 0 ) = m. (Da N sicher ist, gilt sogar ϕ(M 0 ) = m.) Falls C 0 in P enthalten ist (und auch keine
Cutoffs enthält), dann ist C = C 0 die gesuchte Konfiguration.
Falls C 0 nicht in P enthalten ist (bzw. Cutoffs enthält), dann muss sie mindestens eine CutoffTransition t0 enthalten. Das heißt, es gibt eine dazugehörige Transition t mit |btc| < |bt0 c| und
ϕ(Mt ) = ϕ(Mt0 ) (wobei Mt , Mt0 die dazugehörigen Cuts sind). Aufgrund der Gleichheit der zugeordneten Markierungen, wurde die Entfaltung nach btc ebenso fortgesetzt wie nach bt0 c. D.h., btc
kann zu einer Konfiguration C von U(M ) mit Cut M fortgesetzt werden, so dass ϕ⊕ (M ) = ϕ⊕ (M 0 )
gilt. Außerdem gilt: |C| < |C 0 |. Nun ist entweder C bereits in P enthalten, oder die Konstruktion
kann so lange fortgesetzt werden, bis eine Konfiguration erreicht ist, die in P enthalten ist und
keine Cutoffs mehr enthält.
Falls m = m0 gilt, so wird m bereits vom Cut der leeren Konfiguration repräsentiert, der der
Anfangsmarkierung der Entfaltung entspricht.
2
13
Kapitel 5
Graphtransformation
Guter Einführungsartikel zu Graphtransformation sind [SW92, AEH+ 99]. Ausführlichere Informationen zu Graphtransformationssystemen findet man in den “Handbooks of Graph Grammars
and Computing by Graph Transformation” [Roz97, EEKR99, EKMR99].
Eine gute Übersicht über die Kodierung von Petrinetzen in Graphtransformationssysteme befindet sich in [BCM05]. Die Modelltransformationen auf Petrinetzen stammen aus [Mur89]. Die
Übersetzung von CCS in Petrinetze stammt aus [Gad03, BGK09].
14
Literaturverzeichnis
[AEH+ 99] Marc Andries, Gregor Engels, Annegret Habel, Berthold Hoffmann, Hans-Jörg Kreowski, Sabine Kuske, Detlef Plump, Andy Schr̈r, and Gabriele Taentzer. Graph transformation for specification and programming. Science of Computer Programming,
34(1):1–54, April 1999.
[AG97]
M. Abadi and A. D. Gordon. A calculus for cryptographic protocols: The spi calculus.
In Fourth ACM Conference on Computer and Communications Security, pages 36–47.
ACM Press, 1997.
[Bau96]
B. Baumgarten. Petri-Netze. Grundlagen und Anwendungen. Spektrum, 1996.
[BCM05]
P. Baldan, A. Corradini, and U. Montanari. Relating SPO and DPO graph rewriting
with petri nets having read, inhibitor and reset arcs. In Proc. of PNGT ’04 (Workshop
on Petri Nets and Graph Transformations), volume 127.2 of ENTCS, pages 5–28, 2005.
[BGK09]
Filippo Bonchi, Fabio Gadducci, and Barbara König. Synthesising CCS bisimulation
using graph rewriting. Information and Computation, 207(1):14–40, 2009.
[BPS01]
Jan A. Bergstra, Alban Ponse, and Scott A. Smolka, editors. Handbook of Process
Algebra. Elsevier, 2001.
[CG98]
Luca Cardelli and Andrew D. Gordon. Mobile ambients. In Maurice Nivat, editor,
FoSSaCS ’98, pages 140–155. Springer-Verlag, 1998. LNCS 1378.
[EEKR99] H. Ehrig, G. Engels, H.-J. Kreowski, and G. Rozenberg, editors. Handbook of Graph
Grammars and Computing by Graph Transformation, Vol.2: Applications, Languages
and Tools. World Scientific, 1999.
[EH08]
Javier Esparza and Keijo Heljanko. Unfoldings: A Partial Order Approach to Model
Checking. Springer, 2008.
[EKMR99] H. Ehrig, H.-J. Kreowski, U. Montanari, and G. Rozenberg, editors. Handbook of Graph
Grammars and Computing by Graph Transformation, Vol.3: Concurrency, Parallellism, and Distribution. World Scientific, 1999.
[ERV02]
J. Esparza, S. Römer, and W. Vogler. An improvement of McMillan’s unfolding algorithm. Formal Methods in System Design, 20:285–310, 2002.
[Fok00]
Wan Fokkink. Introduction to process algebra. Springer, 2000.
[Gad03]
F. Gadducci. Term graph rewriting for the π-calculus. In A. Ohori, editor, Proc.
of APLAS ’03 (Programming Languages and Systems), pages 37–54. Springer, 2003.
LNCS 2895.
[Hoa85]
C.A.R. Hoare. Communicating Sequential Processes. Prentice-Hall, 1985.
[Mil80]
Robin Milner. A Calculus of Communicating Systems. Springer-Verlag, 1980. LNCS
92.
15
[Mil89]
Robin Milner. Communication and Concurrency. Prentice Hall, 1989.
[Mil91]
Robin Milner. The polyadic π-calculus: a tutorial. Tech. Rep. ECS-LFCS-91-180,
University of Edinburgh, Laboratory for Foundations of Computer Science, 1991.
[MPW89a] R. Milner, J. Parrow, and D. Walker. A calculus of mobile processes, Part I. Tech. Rep.
ECS-LFCS-89-85, University of Edinburgh, Laboratory for Foundations of Computer
Science, 1989.
[MPW89b] R. Milner, J. Parrow, and D. Walker. A calculus of mobile processes, Part II. Tech.
Rep. ECS-LFCS-89-86, University of Edinburgh, Laboratory for Foundations of Computer Science, 1989.
[MS92]
R. Milner and D. Sangiorgi. Techniques of weak bisimulation up-to. In Proc. of
CONCUR ’92. Springer-Verlag, 1992. LNCS 630.
[Mur89]
Tadao Murata. Petri nets: Properties, analysis and applications. Proceedings of the
IEEE, 77(4):541–580, April 1989.
[Par81]
David Park. Concurrency and automata on infinite sequences. In Theoretical Computer
Science ’81, pages 167–183. Springer, 1981. LNCS 104.
[Rei86]
Wolfgang Reisig. Petrinetze. Springer-Verlag, 1986.
[Roz97]
Grzegorz Rozenberg, editor. Handbook of Graph Grammars and Computing by Graph
Transformation, Vol.1: Foundations. World Scientific, 1997.
[SW92]
A. Schürr and B. Westfechtel. Graph grammars and graph rewriting systems (in
german). Technical Report AIB 92-15, RWTH Aachen, 1992. Course Book.
[SW01]
Davide Sangiorgi and David Walker. The π-calculus—A Theory of Mobile Processes.
Cambridge University Press, 2001.
[Wal89]
D. J. Walker. Automated analysis of mutual exclusion algorithms using CCS. Formal
Aspects of Computing, 1:273–292, 1989.
16

Documents pareils