• Keine Ergebnisse gefunden

Der π -Kalk¨ulalsMessage-Passing-Modell Nebenl¨aufigenProgrammierung Der Der π π -Kalk¨ul -Kalk¨ul(2) ¨Ubersicht

N/A
N/A
Protected

Academic year: 2021

Aktie "Der π -Kalk¨ulalsMessage-Passing-Modell Nebenl¨aufigenProgrammierung Der Der π π -Kalk¨ul -Kalk¨ul(2) ¨Ubersicht"

Copied!
20
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prinzipien, Modelle und Algorithmen der Nebenl¨aufigen Programmierung

Wintersemester 2019/20

Der π-Kalk¨ ul als Message-Passing-Modell

Prof. Dr. David Sabel

LFE Theoretische Informatik

Letzte ¨Anderung der Folien: 30. Januar 2020

Ubersicht ¨

1 Derπ-Kalk¨ul: Einleitung

2 Synchronerπ-Kalk¨ul

3 Der asynchroneπ-Kalk¨ul

4 Erweiterungen und Varianten desπ-Kalk¨uls Nichtdeterministische Auswahl

Polyadischer π-Kalk¨ul Rekursive Definitionen

5 Prozess-Gleichheit imπ-Kalk¨ul Starke Bisimulation

Bisimulation Barbed Kongruenz

TCS | 13π-Kalk¨ul | WS 2019/20 2/77 Einl. Synchron Asynchron Varianten Gleichheit

Der π-Kalk¨ ul

R¨uckblick:

Der Lambda-Kalk¨ul ist ein Modell sequentieller Programmiersprachen

wobeiOperationenund DatendurchFunktionen (Abstraktionen) ausgedr¨uckt wird.

derKontrollfluss wird durch Anwendungenvon Funktionen auf Argumente ausgedr¨uckt.

Der π-Kalk¨ ul (2)

Der π-Kalk¨ul:

Der π-Kalk¨ul ist ein Modellnebenl¨aufigerund verteilter Programmiersprachen

Daten und Operationen werden durchProzesse ausgedr¨uckt der Kontrollfluss wird durch Prozesskommunikation

ausgedr¨uckt.

D.h. ein Message-Passing-Modell: Kommunikation nur ¨uber Nachrichten

Besonderes Merkmal: MobileProzesse

(2)

Der π-Kalk¨ ul (3)

Entwickelt von Robin Milner, Joachim Parrow and David Walker in den 1990er Jahren

Anwendungen auch außerhalb der nebenl¨aufigen Programmierung sogar außerhalb der Informatik, z.B.

Spi-Kalk¨ul:π-Kalk¨ul zur Beschreibung und Verfizieren von kryptographischen Protokollen

Microsofts XLANG: Beschreibungssprache f¨ur Gesch¨aftsprozesse

Biochemie: Stochastischerπ-Kalk¨ul zur formalen Darstellung biochemischer Prozesse

TCS | 13π-Kalk¨ul | WS 2019/20 5/77 Einl. Synchron Asynchron Varianten Gleichheit

Der π-Kalk¨ ul (4)

Verschiedene Varianten Synchroner π-Kalk¨ul Asynchroner π-Kalk¨ul

Mit oder ohne Summen: Nichtdeterministische Auswahl Mit Rekursion / mit Replikation

monadisch / polyadisch etc.

TCS | 13π-Kalk¨ul | WS 2019/20 6/77 Einl. Synchron Asynchron Varianten Gleichheit

Parallele Komposition

P Q

P | | Q

“Prozesse P undQlaufen nebenl¨aufig”

Links

P x

x.P

|{z}

receive

oder

x.P

“P ist mit Kanal namensx verbunden”

(3)

Kommunikation

P x Q

x.P | | x.Q → P | | Q

“P (Sender) undQ(Empf¨anger) “P sendete eine Nachricht an Q”

k¨onnen kommunizieren”

TCS | 13π-Kalk¨ul | WS 2019/20 9/77 Einl. Synchron Asynchron Varianten Gleichheit

Nicht-Determinismus

P

Q

R

x

x x x

x.P | | x.Q | | x.R

P | | Q | | x.R P | | x.Q | | R

→ P | | Q

TCS | 13π-Kalk¨ul | WS 2019/20 10/77 Einl. Synchron Asynchron Varianten Gleichheit

Nachrichten

P Q

x

m m

xm.P | | x(y).Q → P | | Q[m/y]

“P versendet Nachrichtm entlangx”

Mobilit¨ at: Ans¨ atze

1. Prozesse ver¨andernihren Ort imphysikalischen Raumder Prozesse

P3

P1 P2

P3 P1

P2

2. Prozesse ver¨andernihren Ort imvirtuellen Raumder verbundenenProzesse

P3

P1 x P2

y z

P3

P1 x P2

y z

3. Verbindungen ver¨andernihren Ort imvirtuellen Raumderverbundenen Prozesse

(Ansatz desπ-Kalk¨uls, enth¨alt den zweiten Ansatz)

P3

P1 x P2

y z

P3

P1 x P2

y z

P3

P1 x P2

y z

(4)

Mobilit¨ at (2)

Wie werden Verbindungen bewegt?

⇒ Versende sie als Nachricht!

P x Q

R

y

x(z).z(w).P0

| {z }

P

|

|xy.Q0

| {z }

Q

||yu0.R0

| {z }

R

P00 Q0

R00 y

(z(w).P0)[y/z]||Q0||yu0.R0

= y(w).P0[y/z]

| {z }

P00

|

|Q0||yu0.R0

| {z }

R00

TCS | 13π-Kalk¨ul | WS 2019/20 13/77 Einl. Synchron Asynchron Varianten Gleichheit

Private Kommunikation

νx.P

“Kanal x ist privat f¨urP”

Beispiel:

ν x.(x(y).P | | xz.Q) | | xz

0

.R

Keine Kommunikation zwischen R undP erlaubt

¨

aquivalent zu

ν x

0

.(x

0

(y).P | | x

0

z.Q) | | xz

0

.R

TCS | 13π-Kalk¨ul | WS 2019/20 14/77 Einl. Synchron Asynchron Varianten Gleichheit

Replikation

P P P

. . .

! P

“!P bedeutet P||P||P||. . .

| {z }

unendlich viele parallele Kopien vonP

Synchroner π-Kalk¨ ul ohne Summe mit Replikation

Syntax

N abz¨ahlbar unendliche Menge von Namen (¨ahnlich zu Variablen)

Syntax f¨urπ-Kalk¨ul-Prozesse (x∈ N)

P ::= π.P (Aktion)

| P1||P2 (Parallele Komposition)

| !P (Replikation)

| 0 (Inaktiver Prozess)

| νx.P (Restriktion) Syntax f¨urAktionspr¨afixe wobeix, y∈ N

π ::= x(y) Input

| xy Output

(5)

Synchroner π-Kalk¨ ul (2)

x(y).P bedeutet:

Empfange ¨uber denKanal namensx einen Namen und binde ihn any.

Nachdem der Name empfangen wurde: Verhalte dich wieP, wobei f¨ury der empfangene Name eingesetzt wird.

xy.P bedeutet:

Sende ¨uber den Kanalnamens xden Namen y. Danach verhalte dich wieP.

0ist der inaktive Prozess, der nichts tut

P1||P2 ist die parallele Komposition von P1 undP2. νx.P f¨uhrtP alsGeltungsbereich f¨urx ein.

Replikation!P steht f¨ur unendlich viele parallele Ausf¨uhrungen von P, d.h.P ||P ||. . .||P

| {z }

unendlich oft

.

TCS | 13π-Kalk¨ul | WS 2019/20 17/77 Einl. Synchron Asynchron Varianten Gleichheit

Bindungsbereiche

Binder imπ-Kalk¨ul sind:

Restriktion νz.P bindet den Namen zmit Geltungsbereich P x(y).P bindet y mit GeltungsbereichP

Beachte: Der Output-Pr¨afix xy bindet weder xnoch y.

Freie Namen fn(P)

fn(x(y).P) ={x} ∪(fn(P)\ {y}) fn(xy.P) ={x, y} ∪fn(P) fn(P1||P2) =fn(P1)∪fn(P2)

fn(0) =∅

fn(νx.P) =fn(P)\ {x}

fn(!P) =fnP

Gebundene Namen bn(P)

bn(x(y).P) ={y} ∪bn(P) bn(xy.P) =bn(P)

bn(P1||P2) =bn(P1)∪bn(P2)

bn(0) =∅

bn(νx.P) ={x} ∪bn(P) bn(!P) =bnP

Alle Namen eines Prozesses: n(P) :=fn(P)∪bn(P)

TCS | 13π-Kalk¨ul | WS 2019/20 18/77 Einl. Synchron Asynchron Varianten Gleichheit

Alpha-¨ Aquivalenz

Definition (Alpha- ¨Aquivalenz)

Eine Umbenennung gebundener Nameneines Prozesses P ist die Ersetzung eines Unterterms

x(y).P0 vonP durch x(z).P0[z/y], oder νy.P0 vonP durch νz.P0[z/y].

Prozesse P1,P2 heißenα-¨aquivalent, wenn sie durch

Umbenennungen gebundener Namen gleich gemacht werden k¨onnen.

Wie vorher:

Alpha-¨aquivalente Prozesse werden als gleich angesehen.

Annahme: Distinct Name Convention

Prozesskontexte

ProzesskontextD

Prozess, der an einer Position anstelle eines Prozesses ein Loch [·]hat.

Grammatik:

D::= [·]|π.D|D||P |P||D|!D|νx.D f¨urx∈ N

(6)

Strukturelle Kongruenz

Strukturelle Kongruenz ≡: Kleinste Kongruenz auf Prozessen, die die folgenden Axiome erf¨ullt.

P ≡ Q, fallsP und Q α-¨aquivalent sind P1||(P2||P3) ≡ (P1||P2)||P3

P1||P2 ≡ P2||P1 P ||0 ≡ P νz.νw.P ≡ νw.νz.P

νz.0 ≡ 0

νz.(P1||P2) ≡ P1||νz.P2, falls z6∈fn(P1)

!P ≡ P||!P

Umgekehrt ausgedr¨uckt: Kann man P1 mithilfe der Axiome (angewendet auf Unterprozesse) undα-Umbenennungen inP2

¨uberf¨uhren, dann sindP1 undP2 strukturell kongruent (d.h.

P1 ≡P2)

TCS | 13π-Kalk¨ul | WS 2019/20 21/77 Einl. Synchron Asynchron Varianten Gleichheit

Strukturelle Kongruenz: Bemerkungen

Strukturelle Kongruenz ist “eigentlich” daf¨ur gedacht

Prozesse als gleich anzusehen, weil sie mehr oder weniger die gleiche Struktur haben.

Tats¨achlich ist bis heute nicht bewiesen, dass≡¨uberhaupt entscheidbar ist:

Entscheidungsproblem: GegebenP1, P2. Gilt P1 ≡P2? Bekannt: ≡ist EXPSPACE-schwer! (siehe Literatur) EXPSPACE-Schwere kommt bereits durch!und || Zusammen mitν wird es anscheinend noch schwieriger Es gibt entscheidbare Varianten.

TCS | 13π-Kalk¨ul | WS 2019/20 22/77 Einl. Synchron Asynchron Varianten Gleichheit

Operationale Semantik

Reduktionsregeln

(Interact) x(y).P||xv.Q→P[v/y]||Q (Par) P||Q→P0||Q, fallsP →P0 (New) νx.P →νx.P0, fallsP →P0

(StructCongr) P →P0, fallsQ→Q0,P ≡Q undP0≡Q0 Alternative Definition:

Sei die Menge Rder Reduktionskontexte beschrieben durch R::= [·]|R||P |νx.R

Reduktion→:

WennR∈ R,P0≡R[x(y).P||xv.Q], Q0≡R[P[v/y]||Q], dannP0 →Q0.

Beispiele

Betrachte:P ≡x(y).yy.0

| {z }

P1

|

|xz.0

| {z }

P2

|

|z(w).0

| {z }

P3

P1 und P2 kommunizieren ¨uber den Kanalx, wobeiP2 an P1 den Namen zverschickt:

P →zz.0

|{z}

P10

|

| 0

|{z}

P20

|

|z(w).0

| {z }

P3

≡P0

P10 und P3 kommunizieren ¨uber den Kanalz, wobeiP10 den Namenz verschickt:

P0→0||0||0≡P00

Ergebis ist strukturell kongruent zu0 und kann nicht weiter reduziert werden.

(7)

Beispiele (2)

Die Reduktion istnicht-deterministisch Betrachte:

P ≡x(y).0||xv.0||x(z).zw.0

xx $$

0||0||x(z).zw.0 x(y).0||0||vw.0

TCS | 13π-Kalk¨ul | WS 2019/20 25/77 Einl. Synchron Asynchron Varianten Gleichheit

Beispiele (3)

ν-Binder verhindern Kommunikationsm¨oglichkeiten und erm¨oglichen lokale Kommunikation, die durch den Eingriff von außen gesch¨utzt ist.

Betrachte:

P ≡ νx. x(y).0||xv.0

|

|x(z).zw.0

→ νx.(0||0)||x(z).zw.0

nur eine Reduktion m¨oglich!

Nachα-Umbenennung vonP:

P ≡νx0.(x0(y).0||x0v.0)||x(z).zw.0

TCS | 13π-Kalk¨ul | WS 2019/20 26/77 Einl. Synchron Asynchron Varianten Gleichheit

Extrusion

Lokale Namen, k¨onnen ihren Bindungsbereich durch Kommunikation verlassen.

Betrachte

P ≡x(y).P1||νz.xz.P2 wobeiznicht in P1 vorkommt.

Bei Reduktion mit (Interact):

P ≡νz.(x(y).P1||xz.P2)→νz.(P1[z/y]||P2) Der scheinbar nur f¨urP2 bekannte Namen zwird auch f¨urP1 bekannt

Dieses Ph¨anomen wird als Extrusion bezeichnet.

Unendliche Reduktionsfolgen

Unendlich lange Reduktionsfolgen sind m¨oglich Beispiel:

P =!(xv.0)||!(x(z).0)

Anfang der Reduktion

P = !(xv.0)||!(x(z).0)

≡ !(xv.0)||xv.0||!(x(z).0)

≡ !(xv.0)||xv.0||x(z).0||!(x(z).0)

→ !(xv.0)||0||0||!(x(z).0)

≡ !(xv.0)||!(x(z).0)

≡ P

(8)

Turing-M¨ achtigkeit des π-Kalk¨ uls

Bewiesen von Robin Milner, 1992

Kodiere den call-by-name Lambda Kalk¨ul in denπ-Kalk¨ul Ubersetzung¨ J·K

F¨ur Lambda-Ausdrucks:JsKu ist Prozess wobeiuein Name ist

¨uberu “erh¨alt”sseine Argumente

TCS | 13π-Kalk¨ul | WS 2019/20 29/77 Einl. Synchron Asynchron Varianten Gleichheit

Kodierung J · K

Ubersetzung von Abstraktionen¨

Jλx.sKu:=u(x).u(v).JsKv

Uber¨ u empf¨angt die Abstraktion zwei Namen:

Zum einenx,

zum anderen den Namen ¨uber densseine Argumente erh¨alt Ubersetzung von Variablen¨

JxKu:=xu.0 Beispiel:Jλx.xKu=u(x).u(v).xv.0

TCS | 13π-Kalk¨ul | WS 2019/20 30/77 Einl. Synchron Asynchron Varianten Gleichheit

Kodierung J · K (2)

Ubersetzung von Anwendungen¨

Bei(s t) wird quasi eine Bindungx=tf¨ur das Argument als eigener Prozess angelegt.

Der Prozess f¨ur x=tfordert jedes Mal einen Kanalnamen an,

¨uber welchen er seine Argumente erh¨alt Abk¨urzung:

hx=ti:=!(x(w).JtKw) Replikation: Dateventuell ¨ofter gebraucht wird Ubersetzung der Anwendung, wobei¨ x ein neuer Name:

Js tKu:=νv.(JsKv||νx.vx.vu.hx=ti)

Beispiel

J(λx.x) tKu = νv.(J(λx.x)Kv||νy.vy.vu.hy=ti)

= νv.(v(x).v(w).JxKw||νy.vy.vu.hy=ti)

= νv.(v(x).v(w).xw.0||νy.vy.vu.hy=ti)

≡ νy.νv.(v(x).v(w).xw.0||vy.vu.hy=ti)

→ νy.νv.(v(w).yw.0||vu.hy=ti)

→ νy.νv.(yu.0||hy=ti)

= νy.νv.(yu.0||!(y(w).JtKw))

≡ νy.νv.(yu.0||(y(w).JtKw)||!(y(w).JtKw))

→ νy.νv.(0||(JtKu)||!(y(w).JtKw))

≡ JtKu||νy.(!(y(w).JtKw))

(9)

Beispiel (2)

Zusammengefasst:

J(λx.x)tKu−→ JtKu||νy.(!(y(w).JtKw))

νy.(!(y(w).JtKw))kann nicht kommunizieren, daher

”Garbage“

Im call-by-name Lambda Kalk¨ul:(λx.x)t→t

TCS | 13π-Kalk¨ul | WS 2019/20 33/77 Einl. Synchron Asynchron Varianten Gleichheit

Resultate aus Milner, 1992

Proposition

Seisein geschlossener Lambda-Ausdruck, dann gilt eine der folgenden Bedingungen:

1 s↓name undJsKu−→ P, sodass P irreduzibel ist.

2 s↑name und es gibt keinP, so dassJsKu−→ P, wobeiP irreduzibel ist.

Informal: Call-by-name Auswertung von Lambda-Ausdr¨ucken kann imπ-Kalk¨ul simuliert werden.

TCS | 13π-Kalk¨ul | WS 2019/20 34/77 Einl. Synchron Asynchron Varianten Gleichheit

Resultate aus Milner, 1992 (2)

Lemma

Sei sein geschlossener Lambda-Ausdruck, dann istJsKu

deterministisch bzgl. ≡, d.h. fallsJsKu−→ P undP →Q1 als auch P →Q2, dann gilt stetsQ1≡Q2.

JsKu

P

##

{{Q1 Q2

Insgesamt folgt:

Theorem

Der synchroneπ-Kalk¨ul ist Turing-m¨achtig.

Bemerkungen

Resultat zeigt nur, dass Lambda-Ausdr¨uckeausgef¨uhrtwerden k¨onnen.

Kein Zusammenhang zwischen Gleichheitstheorien Milner 1992 zeigt st¨arkere Aussagen ¨uberJ·K

Wir haben allerdings (noch) keinen Gleichheitsbegriff f¨ur den π-Kalk¨ul definiert

Es gibt verschiedene Begriffe!

Milner 1992 gibt zus¨atzlich eine Kodierung descall-by-value Lambda-Kalk¨uls in den π-Kalk¨ul an.

(10)

Der asynchrone π-Kalk¨ ul

Bisher: Die Kommunikation findet in einem Schritt statt, d.h.

synchroneKommunikation

Im asynchronenπ-Kalk¨ul: Fast alles identisch, nur ein Unterschied:

Nach dem Output-Pr¨afixxy darf nur der inaktive Prozess 0 folgen.

Syntax

P ::= 0|xy.0|x(y).P |P1||P2 |νz.P |!P

TCS | 13π-Kalk¨ul | WS 2019/20 37/77 Einl. Synchron Asynchron Varianten Gleichheit

Der asynchrone π-Kalk¨ ul (2)

Der asynchrone Charakter kommt durch die Sichtweise:

xy.0 sindgesendete Nachrichten, die im Raum

”herumschwirren“

P ≡ x1y1.0||. . .||xnyn.0

| {z }

Medium der gesendeten Nachrichten (Puffer)

|

| Q1||. . .||Qn

| {z }

echtes“ Programm

TCS | 13π-Kalk¨ul | WS 2019/20 38/77 Einl. Synchron Asynchron Varianten Gleichheit

Kodierung: Synchroner π-Kalk¨ ul in den asynchronen

Umkehrung klar: Da asynchroner π-Kalk¨ul ein Subkalk¨ul des synchronen ist.

SeiP0||Q0 ≡(xz.P ||x(y).Q) ein Prozess des synchronen π-Kalk¨uls.

Wir nennenP0 den Sender,Q0 denEmpf¨anger

Ziel: P undQsind blockiert bis die Kommunikation statt gefunden hat.

Erste Idee: ¨Ubersetzexz.P als xz.0||P

Funktioniert nicht:P kann weiterreduzieren ohne auf die Kommunikation zu warten!

Idee: Verwende asynchrone Kommunikation, wobei der Sender auf eine Empfangsbest¨atigung wartet.

Kodierung mit Empfangsbest¨ atigung

Sender S=xz.0||u(v).P Empf¨anger E=x(y).(uv.0||Q) Auswertung dazu:

S||E

= (xz.0||u(v).P)||x(y).(uv.0||Q)

→u(v).P||uv.0||Q[z/y]

→P ||Q[z/x]

(11)

Kodierung mit Empfangsbest¨ atigung (2)

Schwachpunkt: Nicht unabh¨angig vom Kontext:

Ubersetzung von¨ D[P0||Q0]stellt nicht sicher, dass andere Prozesse ausD ¨uber Kanal u kommunizieren.

Beispiel D=u(w).0||[·]

Dann kannD[S||E]wie folgt reduzieren:

u(w).0||(xz.0||u(v).P)||x(y).(uv.0||Q)

→ u(w).0||(u(v).P)||uv.0||Q[z/y]

→ (u(v).P)||Q[z/y]

L¨osung: zuerst einenprivatenKanalnamen zwischen Sender und Empf¨anger austauschen

TCS | 13π-Kalk¨ul | WS 2019/20 41/77 Einl. Synchron Asynchron Varianten Gleichheit

Kodierung mit Empfangsbest¨ atigung (3)

Senderνu.(xu.0||u(v)P)

Dann kannu(v)P erst dann weiter reduzieren, wennu ¨uberx versendet wurde, da u vorher nach außenunsichtbar!

u(v)P blockiert bis die Kommunikation stattgefunden hat.

Damit kann man synchronisieren

TCS | 13π-Kalk¨ul | WS 2019/20 42/77 Einl. Synchron Asynchron Varianten Gleichheit

Kodierung mit Empfangsbest¨ atigung (4)

Ubersetzung¨ J·Kπ ¨ubersetzt synchrone in asynchrone Prozesse

J0Kπ = 0

Jxy.PKπ = νu.(xu.0||u(v).(vy.0||JPKπ)), wobeiu, v6∈fn(P)

Jx(y).PKπ = x(u).νv.(uv.0||v(y).JPKπ), wobeiu, v6∈fn(P) JP||QKπ = JPKπ||JQKπ

J!PKπ = !JPKπ

Jνx.PKπ = νx.JPKπ

Beispiel

Auswertung vonJxz.P||x(y).QKπ: Jxz.P||x(y).QKπ

=νu.(xu.0||u(v).(vz.0||JPKπ))||x(u0).νv0.(u0v0.0||v0(y).JQKπ)

→νu.(0||u(v).(vz.0||JPKπ)||νv0.(uv0.0||v0(y).JQKπ))

→νv0.(νu.(0||(v0z.0)||JPKπ||0||v0(y).JQKπ))

→νv0.(νu.(0||0||JPKπ||0||JQKπ[z/y]))

≡JPKπ||JQKπ[z/y]

P kann weiter rechnen bevorz gesendet wurde Aber Kommunikation ist sichergestellt, nur Qkennt v0

(12)

Resultate aus Boudol 1992

Notation f¨ur geschlossene Prozesse Definition

Ein Ausgabe-geschlossener Prozess des synchronen bzw.

asynchronen π-Kalk¨uls ist ein Prozess, so dass f¨ur jeden Output-Pr¨afix xy gilt: Die Namen xund y sind durch Binder gebunden.

Notation f¨ur Antworten Definition

Ein Prozess P ist eineEingabe-Antwort, wenn gilt P ≡νx1. . . . νxn.x(y).P0||Q

TCS | 13π-Kalk¨ul | WS 2019/20 45/77 Einl. Synchron Asynchron Varianten Gleichheit

Resultate aus Boudol 1992 (2)

Resultat f¨ur die Konvergenz:

Theorem

SeiP ein Ausgabe-geschlossener Prozess des synchronen π-Kalk¨uls. Dann gilt:

∃Eingabe-Antwort P0:P −→ P0 genau dann, wenn

∃Eingabe-Antwort P00:JPKπ

→P00

Boudol zeigt noch mehr: Ad¨aquatheit bez¨uglich der kontextuellen Pr¨aordnungen

TCS | 13π-Kalk¨ul | WS 2019/20 46/77 Einl. Synchron Asynchron Varianten Gleichheit

Resultat von Palamidessi

Synchronerπ-Kalk¨ul mit Summenist nicht (sinnvoll) kodierbar in den asychronenπ-Kalk¨ul ohne Summen Voraussetzungen:

Ubersetzung ist¨ kompositional und JP||QK=JPK||JQK Ubersetzung ist wohl-verhaltend bez¨¨ uglich Umbennenungen:

Jσ(P)K=σ(JPK).

Nichtdeterministische Auswahl

P +Q, verh¨alt sich wieP oderQ

Oft beschr¨ankt: “guarded choice”: Beim Ausw¨ahlen muss Kommunikation stattfinden,π1.P +π2.Q

Wir: Synchroner π-Kalk¨ul mit Summen

Zus¨atzlicher Pr¨afix: τ = nicht-beobachtbare Aktion.

Wir verwenden das SummenzeichenΣund + π ::= x(y)|xy |τ wobeix, y∈ N P ::= π.P |P1||P2|!P |0|νx.P |P

iπ.Pi f¨urx∈ N Strukturelle Kongruenz, neu:P +Q≡Q+P,

((P1+P2) +P3)≡(P1+ (P2+P3)),P +P ≡P.

(13)

Reduktion

(Silent) τ.P →P (SilentSum) τ.P+M →P

(InteractSum) x(y).P +M||xv.Q+N →P[v/y]||Q (Interact) x(y).P||xv.Q→P[v/y]||Q

(Par) P||Q→P0||Q, fallsP →P0 (New) νx.P →νx.P0, fallsP →P0

(StructCongr) P →P0, fallsQ→Q0 undP ≡Q undP0 ≡Q0

TCS | 13π-Kalk¨ul | WS 2019/20 49/77 Einl. Synchron Asynchron Varianten Gleichheit

Polyadischer π-Kalk¨ ul

bisher: monadischerπ-Kalk¨ul: Nur ein Name wird kommuniziert

polyadischer π-Kalk¨ul: Tupel von Namen wird ausgetauscht Die Action-Pr¨afixeπ impolyadischenπ-Kalk¨ul:

π::=x(−→y)|x−→z wobeix, yi, zi∈ N

Interact-Regel:

(Interact) x(−→y).P||x−→z .Q→P[−→z /−→y]||Qfalls|−→y|=|−→z| P[−→z /−→y]meint hierbei P[z1/y1, . . . , zn, yn]wenn|−→z|=n Verboten: Gleicher Kanal mit verschiedenen Tupell¨angen benutzen, z.B.x(a, b).P||x(a, b, c).Q

Formal ¨uber Sorten (wie ein Typsystem)

TCS | 13π-Kalk¨ul | WS 2019/20 50/77 Einl. Synchron Asynchron Varianten Gleichheit

Ubersetzung: Polyadischer ¨ π-Kalk¨ ul in monadischen

Idee: Schicke Elemente aus Tupel (z1, . . . , zn) nacheinander Ubersetze¨ x(y1, . . . , yn).P als x(y1). . . . x(yn).P0

und ¨ubersetzex(z1, . . . , zn).Qals xz1. . . . xzn.Q0

Funktioniert nicht,P :=x(z1, z2).0||x(z3, z4).0||x(y1, y2).y1y2.0 M¨oglichkeiten P zu reduzieren:

P →0||xz3, z4.0||z1z2.0 P →x(z1, z2).0||z3z4.0

Ubersetzung¨ Q:=xz1.xz2.0||xz3.xz4.0||x(y1).x(y2).y1y2.0 Reduktionen f¨urQ:

Q−→ 0||xz3.xz4.0||z1z2.0 Q−→ xz1.xz2.0||0||z3z4.0 Q−→ xz2.0||xz4.0||z1z3.0 Q−→ xz2.0||xz4.0||z3z1.0

Ubersetzung: Polyadischer ¨ π-Kalk¨ ul in monadischen (2)

Korrektur: Sender und Empf¨anger tauschen privaten Namen aus

Korrekte ¨Ubersetzung

Jx(z1, . . . , zn).PKpoly = x(w).w(z1). . . . w(zn).JPKpoly

Jxz1, . . . , zn.PKpoly = νv.xv.vz1. . . . vzn.JPKpoly

Jνx.PKpoly = νx.JPKpoly

JP||QKpoly = JPKpoly||JQKpoly

J!PKpoly = !JPKpoly

J0Kpoly = 0

(14)

Rekursive Definitionen

Anstelle der Replikation: rekursive Prozessdefinitionen Konstantenanwendungen A(x1, . . . , xn) hinzu

P :=. . .|!P |. . .|A(x1, . . . , xn) wobeixi ∈ N } Definition f¨urA außerhalb des Programms

A(x1, . . . , xn) =P wobei fn(P)⊆ {x1, . . . , xn}

Neue Reduktionsregel:

(Const) A(y1, . . . , yn)→P[y1/x1, . . . , yn/xn]

fallsA(x1, . . . , xn) =P die Definition von Aist

TCS | 13π-Kalk¨ul | WS 2019/20 53/77 Einl. Synchron Asynchron Varianten Gleichheit

Ubersetzung Rekursion in Replikation, polyadisch ¨

Seien{A1, . . . An}alle definierten Konstanten, mit Definition Ai(−→xi) =Pi.

Neue Kanalnamen a1, . . . , an

Jede KonstantenanwendungAi(−→yi) wird durch hAi(−→yi)i:=ai−→yi.0 ersetzt

Definitionen der Ai durch Prozesse darstellen:

A0i :=!ai(−→xi).hPii.

Ubersetzung:¨

JQKrek :=νa1. . . . νan.(hQi||A01||. . . ||A0n)

Achtung: Nicht kompositional,z.B.

JQ1||Q2Krek 6=JQ1Krek||JQ2Krek.

TCS | 13π-Kalk¨ul | WS 2019/20 54/77 Einl. Synchron Asynchron Varianten Gleichheit

Ubersetzung: Replikation in Rekursion ¨

Ubersetzung¨ J·Krepl

Betrachte!P mit{x1, . . . , xn}=fn(P).

W¨ahle neue Konstante AP und ¨ubersetze:

J!PKrepl :=AP(x1, . . . , xn)

Alle anderen Konstrukte werden homomorph ¨ubersetzt.

Definition f¨ur die Konstante AP:

AP(x1, . . . , xn) =JPKrepl||AP(x1, . . . , xn)

Beispiel

Q=!xz.0||x(y).0||x(w).0 Auswertung vonQ:

Q≡!xz.0||xz.0||x(y).0||x(w).0

→!xz.0||0||0||x(w).0≡!xz.0||xz.0||x(w).0

→!xz.0||0||0≡!xz.0 Ubersetzung:¨

JQKrepl =A(x, z)||x(y).0||x(w).0 wobeiA(x, z) =xz||A(x, z) Eine Auswertung vonJQKrepl:

JQKrepl = A(x, z)||x(y).0||x(w).0

→ (xz||A(x, z))||x(y).0||x(w).0

→ A(x, z)||0||x(w).0

→ (xz||A(x, z))||0||x(w).0

→ A(x, z)||0||0

(15)

Prozess-Gleichheit im π-Kalk¨ ul

Im π-Kalk¨ul verschiedene Begriffe, kein einheitlicher Begriff KeinTerminierungsbegriff

Oft: Terminierung von Prozessen nicht zentral, da verteilte Systeme oft in Endlosschleifen laufen und somit nicht terminieren.

Gleichheitsbegriff oft: Prozesse haben gleiche Ein- / Ausgabem¨oglichkeiten

Statt Reduktion,labeled transition system

Markierungen stellen gerade die Ein- und Ausgaben des Prozesses dar

Unterscheidunginterne Kommunikation undexterne Kommunikation

TCS | 13π-Kalk¨ul | WS 2019/20 57/77 Einl. Synchron Asynchron Varianten Gleichheit

Labeled Transition System

Sichtweise der ext. Kommunikation: Wie kann ein Prozess kommunizieren, wenn man einen Kommunikationspartner hinzuf¨ugen w¨urde?

Prozess der Form P0 ≡νz1. . . . νzn.x(y).P mitx, y6=zi kann eine Eingabe empfangen

Prozess der Form P0 ≡νz1. . . . νzn.xy.P mitx, y 6=zi kann eine Ausgabe durchf¨uhren

Andere Variante: Ausgabe eines gebundenen Namens, d.h. f¨ur P0=νz1. . . . νzn.νy.xy.P mitx, y 6=zi: F¨ur die

Kommunikation muss νy.verschoben weren Markierungen: α:=τ |x(y)|xy|x(y) fn(x(y)) ={x, y} bn(x(y)) =∅ fn(xy) ={x, y} bn(xy) =∅ fn(x(y)) ={x} bn(x(y)) ={y}

fn(τ) =∅ bn(τ) =∅

TCS | 13π-Kalk¨ul | WS 2019/20 58/77 Einl. Synchron Asynchron Varianten Gleichheit

Labeled Transition System (2)

F¨ur synchronenπ-Kalk¨ul:

(In) x(y).P −−→x(z) P[z/y]

(Out) xy.P −→xy P

(Open) νy.P −−→x(y) Q, fallsP −→xy Qund x6=y.

(Interact) x(y).P||xv.Q−→τ P[v/y]||Q

(Par) P||Q−→α P0||Q, fallsP −→α P0 und n(α)∩fn(Q) =∅ (New) νx.P −→α νx.P0, fallsP −→α P0 undx6∈n(α)

(StructCongr)P −→α P0, fallsQ−→α Q0 und P ≡Qund P0 ≡Q0 Summen,τ usw. k¨onnen hinzugef¨ugt werden

Beispiel

νx.(x(u).uu.0||xw.z(a).ab.0)

τ

→ ww.0||z(a).ab.0

−−→z(c) ww.0||cb.0

−−→ww cb.0

cb→ 0

Beachte: Der Name cist frei w¨ahlbar

(16)

Harmony-Lemma

P →Qgdw.P −→τ Q0 wobeiQ0 ≡Q

TCS | 13π-Kalk¨ul | WS 2019/20 61/77 Einl. Synchron Asynchron Varianten Gleichheit

Starke Bisimulation

Definition

Eine bin¨are Relation Rauf Prozessen ist einestarke Bisimulation, wenn f¨ur alle (P, Q)∈ R gilt

FallsP −→α P0, dann gibt es einen Prozess Q0, so dass giltQ−→α Q0 und (P0, Q0)∈ R

FallsQ−→α Q0, dann gibt es einen ProzessP0, so dass giltP −→α P0 und (P0, Q0)∈ R.

ProzesseP und Qsindstark bisimilar (geschriebenP ∼b,strong Q), falls es eine starke BisimulationR mit(P, Q)∈R gibt.

Die Relation∼b,strong heißt starke Bisimilarity.

Lemma

b,strong ist diegr¨oßtestarke Bisimulation.

TCS | 13π-Kalk¨ul | WS 2019/20 62/77 Einl. Synchron Asynchron Varianten Gleichheit

Einschub: Analoge Definition mit Fixpunkten

SeiProc die Menge aller Prozesse des π-Kalk¨uls.

Sei F : (Proc×Proc)→(Proc×Proc) die folgende Funktion:

(P, Q)∈F(η) genau dann, wenn:

FallsP −→α P0, dann gibt es einen ProzessQ0, so dass gilt Q−→α Q0 und(P0, Q0)∈η

FallsQ−→α Q0, dann gibt es einen ProzessP0, so dass gilt P −→α P0 und (P0, Q0)∈η.

Starke Bisimilarity ist dergr¨oßte Fixpunkt der FunktionF. (die gr¨oßte TeilmengeX vonProc, f¨ur dieF(X) =X gilt) Prinzip der Coinduktion: Jede Relationη, die dichtbez¨uglich F ist, ist auch im gr¨oßten Fixpunkt enthalten.

Eine Relationη ist F-dicht, wenn η⊆F(η) F-dichte Relation = starke Bisimulation

Starke Bisimulation (2)

Starke Bisimilarity ist eine ¨Aquivalenzrelation, aber keine Kongruenz:

P =zb.0||a(c).0

Q=zb.a(c).0+a(c).zb.0 Es gilt P ∼b,strong Q:

R={(P, Q),(a(c).0, a(c).0),(zb.0, zb.0),(0,0)}ist eine starke Bisimulation

Allerdings gilt x(z).P 6∼b,strong x(z).Q

Damit gilt nicht P ∼b,strong Q =⇒ C[P]∼b,strong C[Q]f¨ur jeden Kontext C, d.h.∼b,strong ist keine Kongruenz.

(17)

Starke volle Bisimulation

Definition

Zwei Prozesse P, Qsindstark voll bisimilar(Notation

P ∼b,strong,full Q), wenn f¨ur alle Substitutionen σ, die Namen f¨ur Namen ersetzen gilt: σ(P)∼b,strong σ(Q).

Man kann nachweisen, dass∼b,strong,full eine Kongruenz ist.

TCS | 13π-Kalk¨ul | WS 2019/20 65/77 Einl. Synchron Asynchron Varianten Gleichheit

Bisimulation

Vernachl¨assigung von τ-Transitionen

=τ

⇒ :=reflexiv-transitive H¨ulle von−→τ

=α

⇒ :==⇒τ −→α =⇒τ

Eine bin¨are Relation Rauf Prozessen ist eine Bisimulation, wenn f¨ur alle (P, Q)∈ Rgilt

FallsP α P0, dann gibt es einen ProzessQ0, so dass giltQ=α Q0 und(P0, Q0)∈ R

FallsQα Q0, dann gibt es einen ProzessP0, so dass giltP =α P0 und(P0, Q0)∈ R.

ProzesseP undQsindbisimilar(geschriebenP bQ), falls es eine Bisimulation Rmit(P, Q)∈ Rgibt. Die Relation b heißtBisimilarity.

Zwei ProzesseP, Qsindvoll bisimilar(P b,full Q) fallsσ(P)b σ(Q)ur alle Substitutionenσ gilt.

TCS | 13π-Kalk¨ul | WS 2019/20 66/77 Einl. Synchron Asynchron Varianten Gleichheit

Bisimulation (2)

Bisimilarity ist keine Kongruenz Volle Bismilarity ist eine Kongruenz.

Satz

F¨ur alle ProzesseP, Q gilt:

P ∼b,strongQ =⇒ P ∼b Q P ∼b,strong,fullQ =⇒ P ∼b,fullQ.

Weiterhin gilt ∼b,strong6=∼b und∼b,strong,full6=∼b,full.

Barbs

F¨ur ProzessP schreiben wir P x, fallsP −−→x(y) P0

P x, fallsP −→xy P0 oderP −−→x(y) P0

f¨urβ ∈ {x, x}:P ↓β falls es einen Prozess Qgibt, so dass P −τ,∗−→QundQβ

(18)

Barbs

Lemma

F¨ur alle Prozesse des synchronenπ-Kalk¨uls (mit Summen) gilt:

Px genau dann, wennP ≡νv1. . . . νvn.(x(y).P0+M||Q) wobeix6=vi.

Px genau dann, wennP ≡νv1. . . . νvn.(xy.P0+M||Q) wobeix6=vi.

Deshalb: Man kann auch Reduktion statt labeled Transitionen verwenden!

TCS | 13π-Kalk¨ul | WS 2019/20 69/77 Einl. Synchron Asynchron Varianten Gleichheit

Barbed Bisimulation

Definition

Eine bin¨are Relation Rauf Prozessen ist einebarbed Bisimulation falls f¨ur alle(P, Q)∈ R gilt:

FallsPx (bzw.P x), dannQ↓x (bzw. (Q↓x) FallsQx (bzw. Qx), dann P ↓x (bzw. (P ↓x)

FallsP −→τ P0, dann existiertQ0 mitQ=⇒τ Q0 und(P0, Q0)∈ R FallsQ−→τ Q0, dann existiertP0 mitP =⇒τ P0 und(P0, Q0)∈ R Zwei ProzesseP, Qsind barbed bisimilar(geschrieben

P ∼b,barbed Q) falls es eine barbed Bisimulation gibt, die (P, Q) enth¨alt.

TCS | 13π-Kalk¨ul | WS 2019/20 70/77 Einl. Synchron Asynchron Varianten Gleichheit

Barbed Kongruenz

Definition

Zwei Prozesse P, Qsindbarbed kongruent (geschrieben

P ∼c,b,barbed Q) falls f¨ur alle KontexteC gilt: C[P]∼b,barbed C[Q].

Theorem

F¨ur alle ProzesseP, Q gilt:

P ∼b,full Q =⇒ P ∼c,b,barbed Q

Es ist unbekannt, ob die Umkehrung dieser Implikation gilt.

May-Testing

Diemay-testingPr¨aordnung≤may:

P ≤may Qgdw. f¨ur alle Kontexte C, f¨ur alle Namen x:

C[P]↓x=⇒ C[Q]↓x undC[P]↓x =⇒ C[Q]↓x. May-testingAquivalenz¨ ∼may:

P ∼may Qgdw. P ≤may QundQ≤may P

(19)

May-testing ¨ Aquivalenz

Satz

Die may-testing ¨Aquivalenz ist eine Kongruenz

may ist sehr grob-k¨ornig:

Satz

F¨ur alle ProzesseP, Q gilt:P ∼c,b,barbedQ =⇒ P ∼may Q.

Die Umkehrung gilt nicht, z.B.

a(x).0⊕(b(x).0⊕c(x).0) und(a(x).0⊕b(x).0)⊕c(x).0 wobeiP ⊕Q:=τ.P +τ.Q

TCS | 13π-Kalk¨ul | WS 2019/20 73/77 Einl. Synchron Asynchron Varianten Gleichheit

May-testing ¨ Aquivalenz

Zu grob:

x(y).0⊕0und x(y).0sind may-testing ¨aquivalent!

TCS | 13π-Kalk¨ul | WS 2019/20 74/77 Einl. Synchron Asynchron Varianten Gleichheit

Should-Testing

Should-Barb

F¨urµ∈ {x, x} schreiben wirP ⇓µ (P muss einen Barbµhaben), falls

∀Q:P −→ Q =⇒ Q↓µ.

should-testing Pr¨aordnung≤should:

P ≤should Qgdw. f¨ur alle KontexteC, f¨ur alle Namenx:

C[P]⇓x =⇒ C[Q]⇓x undC[P]⇓x=⇒ C[Q]⇓x. Should-testing ¨Aquivalenz∼should:

P ∼should Qgdw. P ≤should Qund Q≤should P

Should-Testing

Satz

F¨ur alle Prozesse P, Qgilt:

P ∼c,b,barbedQ =⇒ P ∼should Q.

Satz

F¨ur alle Prozesse P, Qgilt:

P ∼should Q =⇒ P ∼may Q.

(20)

Zusammenfassung

Theorem

b,strong,full ⊆ ∼b,full ⊆ ∼b,c,barbed ⊆ ∼should ⊆ ∼may

TCS | 13π-Kalk¨ul | WS 2019/20 77/77 Einl. Synchron Asynchron Varianten Gleichheit

Referenzen

ÄHNLICHE DOKUMENTE

Geben Sie einen π -Prozeßausdruck f¨ur Speicherzellen an, wie sie in der Vorlesung durch die Prozeßabstraktionen Ref und N ullref erkl¨art wurden. Prozeßabstraktionen modellieren

Aufgabe H-6 (Lokale Konfluenz von surjektiven Paaren): Betrachten Sie die Erweiterung des λ-Kalk¨uls um einen Konstruktor und Destruktoren f¨ur Paare, d.h., um drei Konstanten fst,

Institut f¨ur Informatik WS 2008/09 der Universit¨at

Aufgabe H-14 (Starke und schwache Normalisierung identisch in λI, 6 Punkte): Der λI-Kalk¨ul ist folgende Einschr¨ankung des λ-Kalk¨uls: F¨ur jedem Abstraktionsterm λxt gilt x

Aufgabe H-16 (W-B¨ aume I): Als W-Baum bezeichnet man einen λ-Term, gesehen als Baum, in dem der rechte Teilbaum jedes Applikationsknotens ein- fach ist, d.h. selbst keine

Aufgabe P-21 (Beweisterme): Der einfach getypte λ-Kalk¨ul entspricht der konstruktiven Aussagenlogik. Der Funktionspfeil entspricht der Implikation, ein Term eines Typs entspricht

I Getypter λ-Kalk¨ ul als Grundlage der Metalogik, Modellierung von Logiken durch Einbettung. I Isabelle: Korrektheit durch Systemarchitektur I Beweis: R¨ uckw¨

in der Darstellung oben, dass nach allen Schritten (und nicht nur nach dem letzten) auch R gilt.. Die Regeln der formalen Logik umfassen hier elementare Arithmetik (also z.B. 0