Was ist Prozess algebar? Prozess ist allgebracht in eine gewisse Ähnlichkeit zu Dingen,
die wir schon kennen, nämlich zu regulären Ausdrücken.
Reguläre Ausdrücke waren ja eine Variante, wie man sprachen,
die auch von endlichen Automaten definiert wurden, jetzt als Allgebraschen Ausdruck hinschreiben zu können.
Und die Ausdrücke, die man da hinschreiben konnte, waren,
ich japaliere an ihre Erinnerung, entweder die leere Menge,
das war ein reguläre Ausdruck und er stand für die reguläre Menge,
immer M-Index des Ausdrucks, also M, leere Menge, ist die leere Menge.
Der Ausdruck leere Menge steht für die leere Menge
Des Weiteren stand jedes Symbol, klein A,
das aus dem Zeichenvorrat ist, steht auch für eine reguläre Menge,
nämlich die Menge, die genau dieses A enthält. Und dann,
jetzt kommt eigentlich das Interessante daran,
wenn wir schon zwei reguläre Ausdrücke, Groß-A und Groß-B haben,
dann können wir damit weitergehen und können daraus einen neuen Ausdruck bilden,
nämlich den Ausdruck A plus B,
der beschreibt dann die Menge MA vereinigt, MB,
oder wir können die Ausdrücke multiplizieren,
dann beschreibe ich damit MA mal MB,
wobei die Multiplikation für unseren Zusammenhang
jetzt die Konkertennation beschreibt
Komponentenweise, nämlich Elemente aus MA und MB und hänge sie hintereinander.
Und zwar in dieser Reihenfolge. Und bislang ganz normale Ausdrücke
mit Plus und Mal, was jetzt hinzukommt,
ist die Möglichkeit, Stern als Operation zu verwenden,
ah, Stern beschreibt jetzt den reflexiven, transitiven Abschluss,
M von A, Sternchen.
So, es waren reguläre Ausdrücke, genau die sollen es sein,
keine weiteren. Und wir wussten, nach zwei Simulationssätzen,
dass diese regulären Ausdrücke genau die regulären Mengen beschreiben.
Und in eine Richtung haben wir das so gezeigt, Ja,
dass wir die Möglichkeit hatten, einfach von einfachen Ausdrücken zu komponieren.
Hier ist also ein Beispiel mal angegeben.
Hier sieht man links oben zwei sehr kleine Automaten,
die einfach nur den Ausdruck A akzeptieren oder B.
Einfach dadurch, dass ich eine Kante habe,
die mit A beschriftet ist und eine mit B.
Und ich habe auch da drunter noch einen Automaten,
der B sterben mit einer Schleife akzeptiert.
Und mit diesem Grundbaustein kann ich jetzt weitergehen.
Ich kann zum Beispiel den Automaten für A und B sterben,
die kann ich verbinden, indem ich sage,
rechts oben ist das dargestellt,
der Automat für
Mit einer Epsilon-Kante zum Automaten, der jetzt B-Sternen akzeptiert.
Und durch solche Pfeilumhängen-Operationen kriege ich alle regulären Ausdrücke.
Es geht so weiter, ich kann noch A oder B machen.
Dazu nehme ich die beiden Automaten für A und für B jeweils,
füge einen neuen Startzustand hinzu und verzweige von dem neuen Startzustand mit einer Epsilon-Kante
entweder in den alten Startzustand des ersten oder in den alten Staatszustand des zweiten Automaten und erhalte so die Alternative.
Und das kann ich denn weiter zusammensetzen,
bis ich unten bei den großen Automaten angelangt bin,
Ja, ich nehme erst den A plus B-Automaten und verkette
dort von den Endzuständen weiter mit Y-Kanten auf den Automaten von AB-Sternchen.
So, das ist im Prinzip die Konstruktion, die ich mache.
Im Allgemeinen Fall klappt sie auch, um zu jedem regulären Ausdruck
einen endlichen Automaten zu konstruieren, der die gleiche Spare hat.
Das Schöne ist, ich kann jetzt auf den ausdrucken,
Umformung machen, umrechnen und weiß, naja,
sinngemäß überträgt sich das auch auf die Automaten,
da muss ich aber gar nichts mehr tun.
Also der große Vorzug an den Ansatz ist es,
ich kann dort auf Termebene rechnen,
Terminformung machen
Und sowas ähnliches wollen wir auch machen. Wir wollen also
zusammensetzen können, wir wollen auf den Ausdrücken rechnen können.
Und wir wollen damit jetzt nicht mehr Sprachen beschreiben.
Das war ja bei regulären Ausdrücken, stand das im Vordergrund,
wir wollten die regulären Mengen beschreiben, mithilfe dieser Allgebracht.
Was wir jetzt machen wollen, wir wollen Prozesse beschreiben.
Das heißt, durch Therme sollen Abläufe beschrieben werden und
der Algebrage-Absatz soll es auch erlauben, Prozesse zu komponieren.
Ja, und der elementarste Ansatz, den wir haben,
ist die BPA, die Basic Process,
Einfachste Prozess Algebra, dem wir uns so denken können.
Ja, was haben wir da? Erstmal historisch gesehen,
wie eben schon angedeutet, entstammt die Prozess Algebra?
Ungefähr 80er Jahre ist das aufgekommen,
aus der Automatentheorie und in der Automatentheorie war es ja nicht möglich,
Prozesse zu beschreiben, sondern eigentlich nur Sprachen zu akzeptieren.
Prozess Algebra will jetzt aber genau auf Prozesse abheben und
dort auch insbesondere solche Dinge wie Nebenläufigkeit oder Reaktivität,
wie wir das bei Transitionssystemen schon betrachtet hatten, analysieren.
Das wollen wir beschreiben,
modellieren und auch gerne verifizieren
Wie man das bei Prozess eingebracht werenifiziert, das werden wir
noch sehen, das muss man nicht mit Modelchecking machen.
Das geht auch auf eine andere Art und Weise.
Und dazu macht man, ähnlich wie bei endlichen Automaten,
ein zustandsbasierten Ansatz. Man legt also Zustände fest und man
legt Aktionen fest und man spezifiziert jetzt, was Nachfolgezustände sind.
Ja, aber man nimmt diese Zustände ernst im Sinne der Operationalität.
Also wichtig, Automatentheorie ist eine Ähnlichkeit und jetzt das neue Nebenläufigkeit.
Das interessiert uns ja bei Petrinetzen
Besonders interessiert uns aber auch, das haben wir praktisch schon gesehen,
wenn wir mehrere Prozesse kombinieren wollen, zum Beispiel zwei Prozesse.
Und wir wollen feststellen, ob sie im Wechselseitigen Ausschluss sind.
Für so etwas braucht man schon Nebenläufigkeit. Und reaktiv ist auch das Stichwort,
das wir brauchen, wenn wir nicht mehr einfach eine Berechnung durchführen,
sondern wenn wir uns vorstellen,
wir haben dort einen Automaten, wir unseren Café-Tee-Automaten,
an dem Knöpfe sind und interessiert nicht so sehr,
ob wir es schaffen können, denen einen Endzustand zu bewegen,
sondern eigentlich interessiert uns,
naja,
wenn wir ein paar Knöpfe schon gedrückt haben,
welche Knöpfe kann ich denn jetzt drücken
Das heißt also, das Verhalten interessiert mich nach einem gewissen Anfangsdurchlauf. Der Kaffee-T-Automat,
bei dem war es eigentlich nicht so spannend,
ob er im Endzustand ist, sondern eigentlich,
wann habe ich die Möglichkeit, einen Euro einzuwerfen,
wann habe ich die Möglichkeit,
Kaffee versus T auszusehen und solche Sachen.
Und wir fangen jetzt klein an, das heißt noch ohne großartige Nebenläufigkeit.
Wir beschäftigen uns jetzt erst mal mit Systemen im elementaren Prozess,
die mit einem Automaten
letztendlich auskommen
Und was wir jetzt machen, ist aber,
wie wir es auch schon bei Transitionssystemen gemacht haben,
im Gegensatz zur traditionellen Automatentheorie, beschäftigen uns jetzt damit,
welches Verhalten kann simuliert werden.
Das, was bei Transitionssystemen die B-Simulation war,
das soll uns auch hier wieder beschäftigen.
Also eine solche Verhaltensäquivalent im Sinne eines beobachtbaren Verhaltens,
das steht bei der Prozess Algebra jetzt wieder im Vordergrund.
Wird noch was hinzukommen, ansonsten hätten wir das ja alle
schon behandelt mit Transitionssystemen
Es ist in der Prozessalge, im Allgemeinen möglich, natürlich nebenläufige Systeme zu modellieren.
Und wenn ich nebenläufige Systeme habe, kann ich die auch komponieren.
Typischerweise komponiere ich sie dann parallel. Und ich beschreibe dort
eine synchrone Kopplung, eine Ron-Niveau-Synchronisation. Das kann ich
auch mit Automaten machen. Das ist so der Standardweg.
Das heißt, wenn wir das jetzt vergleichen,
in der Prozessalgebrach haben wir einen reinen Aktionsorientierten Formalismus.
Es wird um die Aktivitäten gehen, die stehen im Vordergrund,
welche Zustände Automat hat, interessiert uns gar nicht so sehr.
Wie das intern implementiert ist, ist im Sinne der B-Simulation nicht so spannend.
Hauptsache, es ist verhaltensähnlich zu dem, was ich erwarte.
Es gibt so was Ähnliches, Stageharts,
bei denen ist nicht so wichtig, was passiert,
sondern da ist es explizit gewünscht, die Zustände zu modellieren.
Also bei Stageharts, die es auch in der UML gibt,
da ist es ganz wichtig, weil man damit implementieren will,
dass die Zustände hervorgehoben sind.
Die Zustände sind nicht das, was man gut umsetzen kann im Programmcode.
Und die Petrinetze, die wir betrachtet haben,
die haben eine Mittelposition, jetzt nicht nur optisch,
sondern auch inhaltlich, weil sie sowohl aktions- als auch zustandsorientiert sind.
Wir haben Plätze und Transitionen und das Ganze fällt sich dual zueinander.
Also entweder oder. Und ich habe keine festgelegte Perspektive bei Bye.
So, das ist ungefähr die Übersicht zu den Spezifikationsformalismen,
wie sie sich zueinander verhalten. Worauf sich jetzt alles Weitere stützen wird,
ist die Hauptquelle bei den Focking Introduction Process Ulgeba,
gibt es auch online.
Und eine
sehr interessante Erweiterung
Von demjenigen, der Prozessalgebra damals in den 80ern aufgebracht hat,
ist jetzt mittlerweile der Peakalkül,
der sich ganz explizit mobilen Systemen zuwendet.
Also da noch ein bisschen Vertiefungsliteratur sich anschauen möchte,
findet dort eine exzellente Erweiterung des Ganzen.
Was definieren wir jetzt erstmal? Prozessalgebra, wir müssen wieder wissen,
was sind die Therme. Und dann ist definieren wollen,
dann sieht das fast so aus wie bei regulären Ausdrücken.
Ja, die Menge der elementaren Prozesstherme bzw. Prozessausdrücke bezeichnen wir
mit BPA.
Das heißt, die Prozessmenge heißt genauso wie der Kalkül
Und die besteht aus allen atomaren Aktionen, Klein-A,
für eine hier nicht weiter spezifizierte Grundmenge groß A. Das heißt,
ich gehe davon aus, es gibt eine Grundmenge von Aktionen,
die heißen im Folgenden immer A, B, C.de,
Kleinbuchstaben.
Und dann gibt es zwei elementare Dinge, die ich tun
kann und ich deute sie schon mal als Auswahl beziehungsweise als Sequenz.
Wenn ich also schon zwei BPA-Therme habe,
T1 und T2, dann kann ich deren Summe hinschreiben,
T1 plus T2 und das
ist auch ein BPA-Therm
Und wir werden später feststellen,
dass die Semantik eines solchen Ausdrucks bedeuten soll oder bedeuten wird,
dass sich eine Wahl treffen muss,
ob ich im Verhalten jetzt weitermache mit T1 oder mit T2. Entweder Ola,
das habe ich als Möglichkeiten, also gewissermaßen eine Weiche,
wird so programmiert.
Und das Zweite, was ich programmieren kann, ist eine Sequenz.
Wenn ich zwei BPA-Therme habe, darf ich sie multiplizieren.
T1 mal T2 ist auch ein BPA-Therm. Wir werden feststellen,
dass die Semantik von einem solchen Produkt eben genau
der sequenziellen Komposition entspricht
Gut, streng genommen wissen wir das alles noch nicht.
Wir haben jetzt einfach nur eine Struktur,
in der ich Abschluss bezüglich Plus und Mal habe.
Und sonst noch gar nichts. Das sollen alle Therme sein,
die ich bilden kann im BPA mehr Therme, gibt es nicht.
Und wie immer natürlich nur Therme sind nur endlich gebildet.
Das heißt, endlich oft so etwas angefügt, unendliche Summen kann ich damit nicht bilden.
Und damit ich nicht ganz viele Klammern schreiben muss,
wird in den folgenden Folien,
wenn es also nur um den Therm an sich sich drehen
soll und nicht so sehr um seine syntaktische Repräsentation,
dann nehmen wir an, dass Multiplikation stärker bindet als Addition,
also Sequenz vor Auswahl.
Also so wie man das gewohnt ist,
erste Klammersparregel und deswegen kann ich statt A plus,
Klammer auf B mal C, kann ich auch nur schreiben,
A plus B mal C, ohne Klammern.
Und was ich noch machen kann, ist,
wie in der Mathematik üblich, die Multiplikation lasse ich einfach weg,
wenn ich weiß, dass es Atome gibt,
die nur kleinen Buchstaben sind,
muss ich nicht A mal B schreiben,
sondern kann kurz A,
B schreiben
Dann brauche ich das auch nicht. So,
das sind alle Prozessausdrücke, die man da so hat.
Jetzt ist das ein rein so ein taktisches Objekt,
wie immer in der Informatik,
wenn man mit solchen so taktischen Objekten hantiert,
bedeuten die erstmal gar nichts.
Zumindest so lange nicht, bis ich dem Ganzen irgendwie eine tiefere Bedeutung gebe.
Und die Bedeutung, wenn es Prozessmodellierung sein soll,
wäre also ihr Verhalten. Ich beschreibe also jetzt das Verhalten,
dass ich mit einem solchen Therm in Verbindung bringen möchte.
Und die Semantik eines Therms soll jetzt ein Prozess
Graf sein,
ein spezielles Transitionssystem
Und da ich ja schon mal verraten hatte,
dass plus so etwas wie Auswahl bedeutet und Sequenz durch einen Mal repräsentiert wird,
kann man sich ungefähr zusammenreimen,
dass der Therm A plus B in Klammern, Malc,
noch mal geklammert, mal D,
mit den Klammersparregeln hätte man sich da was sparen können,
dass der durch einen Prozess Grafen repräsentiert wird,
also ein Transitionssystem, das ungefähr so aussehen muss wie gleich gezeigt,
also am Anfang habe ich eine Alternative zwischen A und B
und egal wie ich mich entschieden habe,
gehe ich dann mit C weiter und dann mit D und dann bin ich fertig.
Also eine solche Struktur hätte ich gerne
Ich fange an mit A plus B mal C,
mal D, habe dann die Unterscheidung,
entweder gehe ich mit A oder mit B weiter.
Ich lande auf jeden Fall in einem Zustand,
in dem kann ich wieder C ausführen und dann dann nicht in einen Zustand entnehmen,
kann ich die ausführen und dann bin ich terminiert,
was mit diesem Häkchen angedeutet wird.
Und das Besondere an dieser Stelle ist, die anderen Zustände,
die hier vorkommen, das sind jetzt Wiederprozessalgebranche, Therme.
Das heißt, Zustände sind gewissermaßen Der Rest, Therm.
Wenn ich mich mir entschieden habe,
da vorne die Aktion A auszuführen, dann ist die Alternative ja,
die B beträgt weg und was übrig bleibt,
ist der Rest Therm 10 mal B.
Und den nehme ich gleich als Zustand. Das heißt,
Zustände sind immer durch einen Thermen repräsentiert und dieser Thermen beschreibt mir grob gesagt,
das, was noch zu tun ist, also der Rest.
Solange ich keine Zyklen habe, wird das auch
immer kürzer werden, so wie in diesem Beispiel.
Das heißt, CD, wenn ich einen Zähne ausführe,
streiche ich das gewissermaßen,
das vordere C weg und halte nur noch
Beim Thermen dann nur noch aus D besteht,
kann ich nur noch diese eine Aktion ausführen und bin dann
im Endzustand oder bin terminiert. Sodass es gewissermaßen das,
was wir uns so vorstellen, also eine informelle Semantik,
jetzt müssen wir dem Ganzen ja noch ein mathematisches Rückgrat geben,
dass wir das formal exakt beschreiben können.
Und um eine solche formale Semantik geben zu können,
ist es jetzt ganz hilfreich, dass wir annehmen,
dass die Zustände hier beschrieben werden durch solche Prozesstherme.
Also es gibt nicht sowas wie einen Zustand S1 oder S12
und so weiter,
sondern das machen wir wieder mit Thermen
Das heißt, das primäre Konstrukt hier, das können wir
recyceln, Prozesstherme werden jetzt die Zustände des Prozessgraten sein.
Wenn wir also einen Prozess Therm Tee gegeben haben,
müssen wir jetzt definieren, was ist sein Prozessgraf?
Wenn ich Prozessgraf von x, sondern von Tee. Und das Traditionssystem,
Tee ist von Tee, besteht wieder aus Zuständen,
Aktionen einer Transitionsrelation, einem Staatszustand und eine Menge von Endzuständen.
Und die Menge der Zustände,
Das wird im Prinzip die Menge aller Prozesstherme sein,
eingeschränkt auf die, die ich durch Aktionen,
die jetzt so möglich sein sollen, eingeschränkt werden.
Das heißt, ich habe eine Teilmenge aller BDA-Therme,
S, und das sind genau die,
die ich von Tee aus erreichen kann durch Aktionsfolgen.
Ich könnte auch sagen,
ich nehme erstmal alle BPA-Therme in den Prozessgraphen hinein,
dann wären da eine ganze Menge nicht erreichbar sein später,
aber das würde mich nicht unbedingt stören.
Könnte ich hinterher noch ausrechnen.
Aber wir nehmen jetzt genau die Mengen zu,
die ich auch wirklich brauche
So A, das soll jetzt die Menge der atomaren Aktionen sein.
Es reicht im Prinzip, die zu nehmen,
die in Tee vorkommen, aber ich könnte auch die Grundmenge nehmen,
auf der alle BPA-Therme gebildet sind.
Das macht keinen Unterschied. Also die Transitionsrelation, die muss ich
noch definieren. Dafür wird es ein Transitionskalkül gleich geben.
Also die Übergänge, die sind natürlich noch ein bisschen trickreicher.
Dafür muss ich noch ein paar Regeln angeben.
Okay, S-0, gleich X, gleich Tee.
Der initiale Therm, Tee soll mein Anfangszustand sein
Therme, Zustände sind, ist das denn der Anfangszustand?
Für den baue ich das ja. Und der einzige Endzustand
soll dieses Häkchen sein, wo das Ganze terminiert.
So, wie funktioniert das jetzt mit diesem Transitionskalkül?
Dafür gibt es jetzt ein paar Regeln und die einfachste Regel,
die man deswegen als Aktion A0 ansetzt, ist die folgende, wie dargestellt.
Ich habe keine Grundannahme, deswegen steht über dem Strich nichts.
Und da drunter steht, dass ich immer weiß,
dass wenn der Therm die Gestalt hat,
V und V ist eine atomare Aktion,
dann kann dieser Thermen V diese atomare Aktion V ausführen.
Deswegen steht da dort der Pfeil und V da drüber.
Und wenn ich das getan habe, terminiere ich.
Das haben wir eben gesehen, der Therm D konnte mit einer De-Aktion terminieren.
So, das ist so das Elementarsmöglichste, was wir uns vorstellen.
Das ist der Kleinstmögliche Therm. Und dessen Verhalten ist eben
eine Aktion ausführen, nämlich sich selbst, um dann zu terminieren.
Und jetzt gehen wir über die Struktur der Therme,
denn Therme sind entweder Produkte oder Summen.
Und da müssen wir jetzt irgendwas definieren
Und das Erste, was wir jetzt definieren, ist,
wenn wir schon was haben, wir wissen nämlich von X,
kommen wir zu X-Strich mit einer Aktion V.
Damit können wir jetzt was anfangen, dann können wir mich schließen,
dass ich auch eine Summe bilden könnte von X plus Y
und kommen damit mit V nach X-Strich.
Das entspricht mich genauer unserer Intuition, was eine Auswahl machen soll.
Wenn ich mich die Auswahl zwischen X und Y habe,
also den Term X plus Y,
dann bedeutet diese Schlussregel,
dass ich mich dafür entscheide mit dem Teil Term X fortzufahren
Das heißt, die linke Variante wird gewählt. Und wenn ich weiß,
dass ich von X mit einem V zu X-Strich komme,
das stecke ich in die Vorbedingung, dann weiß ich,
dass ich mit der Summe insgesamt auch zu X-Strich komme.
Ich muss ja nur links auswählen. Das heißt,
das beschreibt unseren Wunsch, eine Alternative auszudrücken. Naja,
und wo ich mich für den linken Teiltherm entscheiden kann,
kann ich mich auch für den rechten Teiltherm entscheiden.
Nee, komm gleich. Erstmal entscheide ich mich dafür,
es könnte auch so sein,
dass X
sofort terminieren kann
Wenn ich die Auswahl habe zwischen X und Y,
dann will ich vielleicht mit X fortfahren.
X hat aber die Möglichkeit, mit V sofort zu terminieren.
Dann hat natürlich auch der Auswahlterm X plus Y
die Option mit einem V sofort zu terminieren.
Ich muss nämlich ja nur für X entscheiden und dann sagen,
na gut, mach deinen V und Herminiere.
Das sind die beiden Regeln, wenn ich gewissermaßen mich für
die linke Seite entscheide. Jetzt kommt die Sache,
ich kann mich auch für die rechte Seite entscheiden.
Ich kann sagen, wieder habe ich X plus
Wenn ich weiß, Y kann mit einem V zu Y-Strich sich abarbeiten,
dann kann auch die Gesamtsumme X plus Y mit einem V zu Y-Strich werden.
Wir haben also die Möglichkeit, das ist symmetrisch,
die Auswahl entweder mit dem linken Therm X weitermachen und den
zu X-Strich umformen oder mit dem rechten Therm Y weitermachen und dem zu Y-Strich umformen.
Was immer da auch V ist,
V ist eine freie Variable, das ist nun Platz halt.
Und bei dieser Regel gibt es auch eben den symmetrischen Fall,
dass da gleich terminiert wird. Das heißt,
ich kann auch sagen, wenn Y sofort mit V terminieren kann,
Man kann das auch die Auswahl zwischen X und Y.
Dann kann ich mich auch wieder Y auswählen und dort die V-Aktionen ausführen, bin dann auch terminiert.
Das sind jetzt beide Varianten, Additionen von einmal Y wird
von der rechten Seite an X anaddiert. Das heißt,
die ersten beiden Schlussregeln, da wird das Y randadiert rechts.
Und in der letzten Zeile steht jetzt gerade wie ein X
von links an das Y randadiert wird.
Man unterscheiden also noch, ob ich bei Umformungsschritten etwas auf
der rechten Seite ranaddiere oder von der linken Seite ranaddiere
Und was ich jetzt noch brauche, ist die Regel.
Naja, wenn ich von X nach X Strich komme.
Und ich habe jetzt einen Prozess, der sieht nicht mehr
aus wie X, sondern nach X kommt noch was.
Nämlich ein Y. Was kann der denn machen? Naja,
da kann immer noch die Aktion V ausführen,
weil X dieses vordere Stück, das macht immer noch die gleichen Aktionen.
Und das Y, was ich von rechts ran multipliziert habe,
das... Oder das liegt da einfach so in der Gegend rum.
Deswegen wird dieser ganze Therm umgeschrieben zu X Strich mal
Denn bei Y bin ich ja noch gar nicht angekommen beim Umschreiben.
Das ist ja ein Therm, der später noch auszuführen ist.
Erstmal schreibe ich X zu X Strich um und habe hinterher immer noch Y später mal auszuführen.
Das ist der Prozess, der danach kommt. Und das Gleiche gilt auch,
wenn ich terminiere, dann muss ich das ein klein bisschen anders schreiben,
wenn X, also sofort terminiert,
mit einem V, dann mit der Prozess,
der erst X ausführen soll und dann Y. Naja,
wenn X sofort terminiert, dann bleibt nur noch das Y-Stück übrig.
Dann ist X komplett aufgebraucht worden davor.
Und deswegen ist x mal Y in diesem Fall,
wird das mit einer V-Aktion
sofort zu
So, und was man noch sieht ist,
es gibt jetzt keine weiteren Regeln mehr auf dieser Folie,
es gibt auch keine mehr.
Warum? Das liegt daran, dass wir uns vorstellen wollen,
dass mal so etwas ist wie eine sequenzielle Operation.
Wenn ich das jetzt symmetrisch machen würde,
dann hätte es nicht mehr diesen Charme des sequenziellen.
Es muss so sein, ich kann nicht einfach Y von links dran multiplizieren.
Wenn ich so eine ähnliche Regel hätte, wo ich jetzt
Zylon davor setzen könnte. Und Y würde nicht verändert und XXX-Strich,
dann hätte ich die merkwürdige Situation, dass bei sequenzieller Ausführung auch Das Programm,
was weiter rechts steht und noch gar nicht dran ist,
schon mal ausgeführt wird.
Das ist aber nicht unsere Vorstellung von sequenzieller Bearbeitung und deswegen
gibt es hier keine weiteren Regeln. Beim Produkt,
das soll sequenzielles Bearbeiten bedeuten, fange ich immer am linken Ende an.
Ganz links wird abgearbeitet. Nicht irgendwo in der Mitte oder rechts. Gut,
das sind jetzt alle Schlussregeln und was ich da gebildet habe,
ist ein Kalkül, in diesem Fall ein Transitionskalkül und dieser Kalkül ist dafür da,
mir die Übergänge zu definieren.
Ich muss jetzt herausfinden, wann komme ich von einem Therm T1
zu einem anderen Themen-T2? Und ich definiere das mehr genau dann,
wenn ich einen Beweis finden kann, der mit diesen Kakülregeln arbeitet.
Das gucken wir uns gleich nochmal als Beispiel an.
Aber das ist die grundlegende Idee. Das heißt,
was ich mache, ich gebe die Transitionsrelation gar nicht direkt an.
Ich sage nicht Menge aller Paare, S-S-S-S-S-S-S-S-S-S-S-S-S-S,
wie wir das mal hatten, sondern ich sage, naja,
ich komme von einem Therm Tee zu einem anderen Therm T-Strich,
genau dann,
wenn ich das mit diesen Regeln herleiten kann
Was ja ganz ökonomisch ist. Im Zweifelsfall gibt es unendlich viele Übergänge,
dann ist es gut, wenn ich mir endlich viele Regeln definiere,
mit denen das grundlegend definiert ist.
Ein solcher Ansatz, der hat auch einen Namen,
das findet man ab und zu, nämlich in verschiedenen Ecken und Enden.
Das Ganze nennt sich eine strukturell operationale Semantik.
Mit solchen Regeln gebe ich ja eine Verhaltenssemantik für Therme vor.
Deswegen ist es eine operationale Semantik. Operational da
das Ganze für ein Transitionssystem
gedacht ist
Und strukturell ist es, da sich die Semantik und die Beweisregeln über dem Thermaufbau vollziehen.
Ich hätte es irgendwie definieren können, aber das hat eine
klare Struktur. Es gibt eine Regel für atomare Therme.
Es gibt entsprechend viele Regeln für Summentherme. Und es gibt
entsprechende Regeln für Produkte. Das ist also genau der Aufbau,
den ich eben auch hatte, als ich sagte, BPA-Therme sind.
Atomar, Summen oder Sequenzen, genau solche Regeln habe ich hier.
So wie wenn ich jetzt diese Regeln an,
das guckt man sich am besten mal anhand eines Beispieles an,
Wir wollen jetzt nachweisen, das haben wir ja im Beispiel eben schon benutzt,
dass ich mit dem Therm A plus B mal 10 mal D,
da hatten wir jetzt eine Kante von diesem Therm aus,
indem ich mir die Auswahl schnappe B wähle.
Und was übrig bleibt, haben wir damals von zwei,
drei Folien gesehen, ist CD.
Einmal vorne steht die Auswahl zwischen A und B.
Wenn ich mich für B entscheide, für A,
B ist das Gleiche gewesen.
Der Restherm ist auf jeden Fall C mal D.
Das haben wir uns irgendwie so intuitiv klar gemacht,
aber das müsste ich ja
jetzt beweisen können
Mit diesen eben eingeführten Regeln. Und wo sieht das aus
? Weil ich muss irgendwo anfangen. Ich kann
nur mit den Aktionen anfangen. Und das einzige Aktion,
das ich für einen solchen Beweis habe und was hier passt,
ist, ich sage, naja, es muss ja eine B-Aktion werden.
Das heißt, über dem Pfeil muss schon mal irgendwas mit B stehen.
Und das einzige Aktion, dass mir sowas erzeugen kann,
ist, dass Axium A0, dass ich hier instanziere an null hatte,
die Form V geht mit V zu dem Terminationshäkchen.
Und jetzt instanziere ich das, genau in der dargestellten Form,
indem ich initiiere mit dem Wert B.
Weil ich B hier gerade brauche. Das heißt,
die Meta-Variable V wird hier ersetzt durch den Wert B.
Und dann kriege ich eben eine Instanz und habe schon
den Anfang des Beweises gemacht und weiß,
mit B komme ich jetzt mit einer B-Aktion zum Terminationssymboltik.
Ja, und damit beweise ich jetzt weiter. Durch eine
geniale Eingebung weiß ich jetzt, dass ich die Additionsregel verwenden möchte.
Ja, ich möchte jetzt etwas von links dran addieren.
Und da sieht man, dass sich Y jetzt als B
instanzieren muss
V zufällig auch als B. Und ich möchte rübergehen,
ich möchte auf diesen Thermen kommen, also instanziere ich x-mal durch A.
Da ich dann weiß, B,
mitten mit einem B zum Tick, weiß ich auch,
dass A plus B mit einem B zum Tick wird.
Das ist also in Ordnung. Habe ich also schon den Anfangsteilthermen abgeleitet?
Was mache ich jetzt? Noch einen Beweisschritt? Ich multipliziere
jetzt von rechts etwas dran. Nämlich mit der Regel,
die mir das gestattet, Y rechts dran,
zu operieren,
hier in der Instanz X
terminiert mit
Dann darf ich da Y dran multiplizieren. Nächstes Mal Y
wird er mit V um 9 Term Y. Terminiert nicht mehr,
sondern wird zu Y. Und wenn ich mir für Y an dieser Stelle
das C wünsche und X als A plus B setze,
dann passt das wieder, die obere Seite habe ich schon.
Und die untere Seite wird dann zu A plus B mal C.
Und eine B-Aktion überführt das dann zu C. Und jetzt noch
einen Beweisschritt. Jetzt muss ich noch das D inbekommen,
das D mache ich ganz genauso. Ich nehme fast die gleiche Regel,
nur jetzt eben nicht mit der Terminationsinsinstanz, sondern mit der Instanz,
wenn ich weiß, X wird zu X Strich.
Ja, das habe ich. Mein X ist denn A plus B mal C.
Mein V ist das B immer noch und X Strich ist nur das C.
Dann darf ich da rechts ein Y dran multiplizieren.
Und das Y ist jetzt das D. Und da kommt jetzt raus,
A plus B mal C,
mal D mit vielen Klammern ist C mal D.
Das heißt, es ist mir gelungen in 1,
2, 3, 4 Beweisschritten,
den Übergang A plus B mal C mal D
wird mit einem B zu 10 mal D herzuleiten
Weil ich das herleiten konnte, ist das also ein Übergang,
der unbedingt in meinen Transitionssystem rein muss.
Und deswegen habe ich auch genau diese Kante,
die damit beschrieben wird mit dem letzten Term, mit dem B-File,
genau deswegen gibt es eine mit B-Beschriftete Kante in meinem Transitionskraften,
weil ich das so herleiten kann.
Und die Grundidee ist, wenn ich das alles so gemacht habe,
alle möglichen Beweise geführt habe, dann packe ich all diese Kanten da rein.
Alle, die ich brauche. Nochmal zurück,
also genau der Prozesskraft wird eben so definiert,
dass ich Die Menge Trill aller dieser Transitionsübergänge,
mir auf diese Weise herleite, indem ich ganz,
ganz viele Beweise führe.
Und dann alles, was ich vom Anfangstherm Tee kriegen kann in die Zustandsmenge S-Packe.
Alles, was ich da erreiche durch Fortgesetztes beweisen.
Muss ich also in jedem Zustand, den ich gerade bearbeite,
gucken, welche Übergänge sind da möglich?
Das muss ich irgendwie herleiten. Da kann man natürlich sagen,
okay, ich habe da immer schon eine Ahnung,
deswegen weiß ich,
was ich beweisen will
Und das Beweisen ist auch ein bisschen einfacher,
wenn man sich vorstellt, was würde ich gerne beweisen,
dann wäre es mich sinnvoller. Wenn wir noch einmal zurückgehen.
Diesen ganzen Beweis kann ich natürlich streng genommen vorwärts stricken.
Die ganzen Schritte vorwärts laufen lassen. Und dann komme ich
irgendwann durch höhere Gewalt da an, wo ich gerne hinkommen möchte.
Ja, das zeigt das auch wunderbar. Viel schlauer ist es,
aber ganz unten anzufangen. Weil man eine Idee hat,
dass man Mit A, B, mal C,
mal A plus B, mal C, mal D,
dass man da mit einer B-Aktion doch wegkommen müsste und bei CD landet.
Sowas, das rät man mal eben. Und wenn man diesen Eindruck hat,
das müsste so sein, wie das unten steht,
dann kann man sich jetzt rückwärts überlegen,
was hätte jetzt der letzte Beweisschritt sein müssen?
Und da sieht man, dieser Therm auf der linken Seite
vom B-File ist mit dem Hauptoperator mal ausgestattet.
Und zwar steht auf der linken Seite des Mals A
plus B mal C und auf der rechten Seite
Das ist das oberste Mal zwischen den Komplexen und den D.
Das heißt, ich weiss dadurch sofort,
dass die letzte Regel eine Instanz dieses Musters gewesen sein muss.
Das kann nicht anders sein. Das ist die einzige Regel,
die da passt, dass ich x-mal Y da rausbekomme.
Wenn ich weiß, das muss so sein,
dann stelle ich fest, okay, x muss A plus B,
MAC sein und Y muss entsprechend D sein.
Und da auf der rechten Seite das Ganze zu zehnmal D
wird, sehe ich sofort x-strich muss C sein
Und wenn ich diese Instanz so bestimmt habe,
dann weiß ich, okay, was muss ich dann beweisen?
Schau also auf die Oberseite des Bruchstrichs. Und stelle fest,
okay, da muss ich nachweisen, X wird zu X Strich mit V.
Und X war A plus B mal C. Das schreibe ich
auf die linke Seite dann oben hin. Geht mit einem B,
das ist das V, hin zu X Strich,
also dem C. Und schon habe ich einen Beweisschritt rückwärts gemacht.
Und dort gucke ich wieder nach, welche Instanz,
aha, das ist wieder eine Produktregel.
A plus B ist der eine Therm X und C
ist der andere Therm
Auf der rechten Seite nur noch Y übrig bleibt,
weiß ich, denn es ist eine Instanz der Terminationsregel,
so wie sie da steht.
Und dann beweise ich mich so rückwärts hoch,
bis ich dann hoffentlich ganz oben bei einem Aktion ankomme.
Ja, und das tue ich da, steht dann hier im Beweis B,
wird mit B zu einem Häkchen und das ist genau das Muster,
das ich als Aktion annehmen darf.
So ein Schema habe ich auch. Das heißt, Beweise wird man
immer rückwärts führen. Auch wenn sie vorwärts definiert sind,
das Auffinden eines Beweises ist schlauer von unten
nach oben
Gut, das ist also gewissermaßen die Definition des Transitionssystems,
die für den Mathematiker sehr einfach ist.
Also zu definieren, was man gerne haben will, ist sehr schlank.
Ein paar Beweisregeln anzugeben, das geht schnell. Und dann sagen,
naja, daraus folgt ja schon alles. Das Transitionssystem selbst aufzubauen,
ist vielleicht auf diese Art und Weise nicht so clever,
wenn man also ein Tool schreibt,
müsste man da noch ein bisschen mehr sich überlegen.
Aber da wir das gerade nicht wollen, sind wir vollends zufrieden.
Wir wissen jetzt, diese Mantik ist ein Transitionssystem.
Und wir wissen, es wird halt gemäß dieser Komponenten
mit diesen Transitionsregeln gebildet
So, was haben wir davon noch nicht viel?
Also jetzt haben wir eine andere Darstellung, Transitionssysteme aufzuziehen.
Wir wissen also, ich gebe euch einen Term,
irgendeiner hat dann die Arbeit und macht ein Transitionssystem raus und das haben wir dann.
Also bislang nur ein Schema, um Transitionssysteme aufzubauen.
Und im Moment sind es noch nicht mal sehr spannende Transitionssysteme,
denn man kann den Regeln ansehen, die Therme werden immer kleiner.
Das heißt, jede Aktion führt zu einem kleineren Term.
Das heißt, bislang haben wir immer endliche Prozesse,
die wir beschreiben
Das heißt, noch haben wir nicht sehr viel.
Deswegen, das ist ja auch nur die Basic-Process-Alroba.
Noch sehr eingestreckt. Aber, und jetzt kommt der Reiz,
uns interessiert ja auch etwas sehr Spezielles.
Wir wollen da jetzt auf die B-Simulation raus.
Wir wollen ja Verhaltensgleichheit jetzt zwischen Systemen betrachten. Und was
der Gag sein wird, im Laufe der nächsten Folien,
ja, kann ich natürlich das naheliegende Verfahren machen.
Ich nehme mir einen Term und noch einen zweiten und frage mich,
sind die Bisimilar? Und dann sage ich, ja,
gut, Transitionssysteme von beiden ausrechnen. Und wann zwei Transitionssysteme Bisimilar sind,
Das habe ich schon mal definiert, das weiß ich.
Wir müssen das, sagen wir mal, relativ arbeitsaufwendig,
Transitionssysteme sind groß, unübersichtlich. Das macht also weder Spaß.
Ja, noch ist das besonders effizient. Und deswegen wollen
wir im Folgenden dann auch noch ein Verfahren entwickeln,
mit dem wir zwei Therme direkt so manipulieren,
dass wir denen ansehen können, ob die Prozessgrafen,
die sie beschreiben, zueinander Bisimiller sind.
Ohne dass wir jemals die Prozessgrafen konstruiert hätten.
Sondern wir wollen das Ganze jetzt auf der syntaktischen Ebene machen.
Und das ist viel,
viel effizienter machbar
Wenn ich gleich auf dieser Ebene bleiben kann,
ohne jemals im dynamischen Transitionssystem das Ganze nachzumachen.
Wiederholen wir noch mal, was eine B-Simulation ist. Also
da hatten wir es schon mal, aber wir wissen,
wenn wir ein Verhalten mit einem anderen System vergleichen wollen,
meinetwegen eins ist Spätsituation, eins ist Implementation.
Dafür gibt es den Begriff der wechselseitigen Simulation oder kurz B-Simulation.
Und ein ganz einfaches Beispiel ist hier dargestellt,
wir haben zwei Prozesse und in der Abwandlung,
damit es nicht immer das Kaffeeautomatenbeispiel ist, haben wir jetzt Ein System,
dort wird erst mal ein Datum gelesen auf der linken Seite.
Und dann schreibe ich es auf ein Medium,
meinetwegen eine Festplatte, die erste Festplatte,
oder ich schreibe es auf die zweite Festplatte, by 2D und terminiere.
Das macht der linke Prozess. Der rechte Prozess entscheidet sich
aber schon früher, auf welche Festplatte er schreiben will.
Er sagt, entweder gehe ich links lang,
lese dann was und schreibe es auf die erste Festplatte.
Oder ich gehe gleich rechts lang,
entscheide mich also dafür, auf die zweite Festplatte schreiben
zu wollen demnächst
Lese das Datum und schreibe es dann. Und da sehen
wir schon, das Verhalten dieser beiden ist deutlich unterschiedlich.
Der linke Prozess liest erst, entscheidet dann.
Im anderen wird die Entscheidung früh getroffen. Die Sequenzen sind in
beiden Prozessen gleich. In beiden ist es nämlich lesen,
schreiben eins, lesen, schreiben zwei.
Das sind die sequenziellen Abläufe. Trotzdem sieht man relativ schnell
an diesem Beispiel, dass das nicht das Gleiche ist,
wenn ich das als Verhalten beschreiben möchte
Als Prozesssystem ist das ja irgendwie, wenn man es ein bisschen abstrakter macht,
erst da ausführen. Auf der linken Seite die Entscheidung,
dann zwischen B&C-Treffen oder auf der rechten Seite erst die Entscheidung
treffen zwischen der linken und der rechten Seite und dann jeweils
ein A lesen und B beziehungsweise C ausführen.
So, das heißt, gleiche Schaltfolgen haben die beiden Prozesse.
In dieser Kurznotation A, B und AC.
Sie sind also Schaltfolgen-Qualent oder Englisch Trace-Equivalent. Aber jetzt kann
man sich überlegen, dass das nicht verhaltensinqualent sein kann,
nehmen wir mal an
Eine Platte fällt aus. Zum Beispiel die erste Platte.
Dann ist der linke Prozess fein raus. Denn der linke Prozess liest erst,
stellt dann fest, Mist, die erste Platte ist kaputt,
nimmt dann die zweite und terminiert dann.
Der linke Prozess hat also noch eine Chance,
wenn beim Lesen irgendwas schief geht, die erste Platte fällt aus,
dann kann er noch auf die zweite ausweichen.
Da ist der zweite Prozess auf der rechten Seite schon in einer ganz anderen Situation,
der könnte mich dummerweise entscheiden, naja, ich nehme mal den linken Pfad,
will also zukünftig auf Platte 1 schreiben, liest denn was ein,
stellt dann fest, Mist, Platte ist kaputt.
Ich kann die Aktion B nicht mehr ausführen,
die ist mir weggenommen worden oder right 1D. Und deswegen gerate ich an dieser Stelle eine Verklemmung.
Das heißt, der Linke hat eine Chance zu terminieren,
der Rechte hat nicht immer eine Chance zu terminieren. So,
und das ist jetzt für uns die Motivation beim Kaffeeautomaten,
war es ähnlich, wann ich den Euro einwerfe und
wann ich dann noch Tee und Kaffee wählen kann,
war da die Problematik, das war gewissermaßen
Der Ansatzpunkt zu sagen, wir müssen einen anderen Äquivalenzbegriff haben als Schaltfolgen-Äquivalenz.
Und das war der Begriff für Verhaltensäquivalenz, B-Simulationen zu definieren.
Und das kennen wir auch schon, das ist jetzt hier
nur noch mal angepasst an die neue Notation.
Wir haben nämlich jetzt diese Terminierungszeichen und unsere Zustände sind jetzt Prozessallgebranche, Thermen.
Das heißt, eine B-Simulation ist in unserem Setting,
eine binäre Millation B auf BPA-Thermen.
Das heißt, B ist eine Teilmenge von BPA-Kreuz BPA
Und jetzt müssen folgende total symmetrische Eigenschaften gelten. Also wir haben hier vier Zeilen,
aber wenn man genau hinguckt, die erste und die zweite
sind fast gleich und die dritte und die vierte sind fast gleich.
Das liegt daran, dass ich sage, naja,
das Linke muss das rechte System simulieren können und das Rechte, das Linke.
Das heißt, ich kriege hier zwei Zeilen,
die einmal das von links beschreiben und einmal von rechts.
Die erste Zeile sagt, wenn ich zwei B-Similare Zustände habe,
ja, oder was heißt das? Das heißt,
wenn das linke System eine Aktion macht und von P nach
P-Strich kommt, dann kann das rechte System das simulieren.
Das heißt, es gibt dann eine Möglichkeit,
von Kuh wegzukommen mit A. Das heißt, ich lande dann in Kuhstrich.
Und was ich da denn bekomme, ist wieder äquivalent.
Das heißt, zwei B-similare Systeme sind ja nicht durch Aktionsfolgen
unterscheidbar, Aktionsfolgen sind ja Erdrücken von Knöpfen.
Und die Aussage ist nur, dass sich irgendwelche A,
B, C-Knöpfe drücke, setzt mich nicht in die Lage,
die beiden Systeme unterscheiden zu können. Und die ersten Zeile sagt,
naja, wenn ich beim Linken irgendwie zuerst drücke,
dann habe ich immer noch eine Chance,
zum zweiten Automaten zu laufen,
dort auf den gleichen Knopf zu drücken und er wird
auch brav wieder
Im Zustand, Kuhstrichland, und die beiden Zielzustände,
P-Strich und Kuhstrich sind dann wieder von der Bauart,
dass sie äquivalent sind.
Und das Spiel kann ich jetzt eigentlich ewig treiben.
Und die dritte Zeile sagt, ja, ja,
aber irgendwann wird vielleicht auch mal terminiert. Das heißt,
wenn du bei P drückst, meinetwegen auf dem A-Knopf,
und die Maschine sagt dann, jetzt bin ich fertig.
Intern geht ein Lämpchen an, fertig. Wenn du
dann rüberrennst zu anderen Maschinen und drückst auf A,
dann hast du auch dort die Chance, dass da die Lampe angeht.
Also du kannst auch sagen,
ich möchte jetzt
auch bei dir terminieren
Die Chance haben, ist deswegen, weil es ja sein kann,
dass ich mit einer Aktion A rein theoretisch zumindest ja mehrere Zielzustände erreichen kann.
Das ist ja nicht ausgeschlossen,
dass ein A mich zu einem Kuhstrich 1 führt und
gleichzeitig kann ich mit einem anderen A oder mit DMA,
aber noch einen anderen Zielzustand Q2-Strich erreichen.
Das ist möglich. Wir haben bislang das noch nicht gesehen
und es wird sich herausstellen, dass diese Übergänge nicht deterministisch sind.
Das heißt, von einem Zustand kann ich mit A
in jenen, aber auch in diesen Zustand gehen.
Das heißt, da muss man immer schon geeignet wählen bei
der Simulierbarkeit
Und das P mit A terminieren kann,
auf der linken Seite führt dann eben dazu,
dass das rechte System mit Kuh auch terminieren kann.
Muss nicht. Es kann sein, dass es mit einer
Aktion A terminiert, mit anderen Aktionen A eben nicht terminiert.
So, und ganz symmetrisch gibt es die Aktionen,
die unter Punkte 2 und 4, wenn das rechte System irgendwas macht,
eine Aktion, dann kann auch das linke System entsprechend reagieren.
Und wenn ich eine Relation B habe, die diese Eigenschaften hat,
die auf allen Thermen da allen Prozessen da etwas Visimilares nachweisen mit den Bedingungen 1 bis 4,
dann sage ich, dass zwei Prozesse P und QB-Similar sind.
Wenn es mich eine solche B-Simulation auf den beiden gibt,
dann sagt man ja, okay, zwei,
solche Prozesse, die können ja von Anfang bis Ende,
egal was die so getan haben, zwischendurch einen anderen simulieren.
Gucken wir uns diese Punkte nochmal kurz im Detail an,
grafisch der erste Punkt, wenn das linke System im Zustand P ist und dann mit A zu P Strich geht.
Und ich weiß, es gibt einen dazu, Bisimilaren Zustand Q, dann ist das grafisch ungefähr diese Situation. P und Q-Sinnverhaltensäquivalent,
oder ich habe zumindest die schwere Vermutung, und um das nochmal,
um ganz sicher zu gehen, mache ich jetzt eine Aktion,
einen Land-P-Strich, damit das wirklich B-Seminar ist,
das kann ja nur dann der Fall sein,
wenn ich das grafisch zurückschließen kann, dem ich sage,
okay, dann muss es so sein, deswegen das Ausführungszeichen, Ausrufezeichen bedeutet in solchen Diagrammen immer, das muss es jetzt geben.
Das heißt, jetzt gibt es auch für Kuh die Möglichkeit,
eine A-Aktion zu machen, und ich lande dann irgendwie in einem Zustand,
nennen wir Maku-Strich, Und der hat dann wieder die Eigenschaft verhaltensäquivalent,
also Bisimular zu sein, zu P-Strich.
Ja, das ist die Grundvoraussetzung, nur dann,
wenn A-Aktionen irgendwie immer beantwortet werden können und dann auch immer so weiter beantwortet werden können.
Nämlich von da kann ich ja weitermachen.
Da kann ich ja nochmal einen B ausführen. Ja,
da muss der andere auch wieder mit einem B antworten können
und immer so weiter und immer so weiter.
Deswegen habe ich da hinten die Zusatzbedingung, dass auch alles,
was ich jetzt erreiche, P2-Strich P3-Strich und so weiter,
dass das für alle zukünftigen Zustände, die ja noch erreichbar sind,
dass da die Visimulation auch gelten soll.
Wie-Similar heißt ja, es widmen jetzt und auch in der Zukunft
nicht möglich sein, die beiden Systeme zu unterscheiden.
So, das sagt die eine Bedingung und die zweite sagt das halt symmetrisch andersrum.
Wenn ich den Übergang von Ku nach Kuhstrich vorgebe,
dann muss es eben das Ausrufezeichen auf der anderen Seite sitzen.
Und wenn ich hier so irgendwie schon mal hingekommen bin,
bis an dieser Stelle,
dann hat das vielleicht auch mit der Termination eine Möglichkeit,
also kann ich sagen, P2-Strich, terminiert mit einem A,
dann muss es auch die Möglichkeit geben,
dass das Kuh-2-Strich kann mit einem A. Das ist die Bedingung 3,
wenn P mit A terminiert und PSB-Simulat zu Kuh,
dann kann das auch Kuh,
das ist terminiert.
Oder umgekehrt, wenn ich Kuh als Vorgabe habe,
dann muss eben P terminieren können. Ja,
jetzt wissen wir, B-Simulationen haben uns nochmal klar gemacht,
ist aber genauso wie vorher
Und jetzt fragen wir uns, hier ist ein Beispiel angegeben,
zwei Prozesstherme. Einmal der Prozessthermen A oder A,
gefolgt von B. Und einmal der ganz offensichtlich dazu verschiedene Thermen A,
B plus A, Klammer auf B plus B, Klammer zu.
Also zwei grundlegend verschiedene Therme. Nun ist es aber so intuitiv,
es ist uns klar, dass der Unterschied zwischen A und A
nicht sehr groß ist.
Also A plus A ist keine wirkliche Alternative.
Von daher steht da auf der linken Seite eigentlich ja
nur so etwas wie Mach A und dann
Und auf der rechten Seite steht auch A, B,
oder, aber das ist jetzt eine Scheinalternative,
weil auf der rechten Seite steht B plus B,
das ist eigentlich auch nur B. Also sinngemäß steht da ja rechts nur A,
B plus A,
B. Aber auch das ist wieder eine Scheinalternative.
Also eigentlich haben beide Prozesse gar nicht große Alternativen,
die können nur ein A ausführen und dann ein B.
Also ist schon mal die Vermutung ziemlich groß,
dass über dem Fragezeichen ein Ausrufezeichen stehen sollte,
dass die beiden Therme Bisimla sind
Das müsste sie jetzt irgendwie nachweisen lassen. Um was es
zu tun, steht da, wir müssen den Nachweis erbringen,
indem wir beide Prozessgrafen erstmal konstruieren. Von dem linken Grafen,
da hat man dann brav aufgemalt, naja, A,
plus A, B, wird mit einem A zu B.
Dass ich da zwei A-Pfeile habe, ist mehr Suggestiva-Natur. Ich hätte da,
ich muss da nicht zwei Pfeile machen, es ist halt nur,
um nochmal zu betonen, dass im Prinzip das verschiedene,
nämlich das linke und das rechte A sind.
Aber mathematische gesehen, ist das die gleiche Kante.
Denn eine Kante in einem solchen Grafen mitbeschrieben durch Startzustand,
was an der Kante dransteht, Endzustand.
Das ist für beide Kanten gleich. Start und Ende ist
gleich und was an der Kante dransteht, ist gleich.
Ob ich da nun zwei, ein oder 500 Kanten schreibe,
macht mathematisch keinen Unterschied. Das ist also nur für uns Leser
ein bisschen suggestiver. Und was steht auf der rechten Seite?
A plus A, B, B, ja gut,
da habe ich wirklich zwei verschiedene Aktionen.
Da muss ich auch zweimalen, denn die Endknoten sind unterschiedlich.
Der linke Term, wenn ich da verzweige, also das A,
ist die Aktion, die zu dem AB-Sumanten gehört,
dann bleibt nur noch das B übrig.
Und auf der rechten Seite, wenn ich das A auswähle,
dann bleibt eben das Fragment B plus B übrig.
Also das, was in den Klammern dahinter steht.
Und beide haben jetzt der linke Therm, naja,
das ist nur ein B, kann nur mit B zur Termination führen.
Und hier wieder B plus B, zwei Pfeile gemalt,
könnte wieder nur einer sein. Auf jeden Fall terminiert auch
B plus B sofort, wenn ich eine B-Aktion ausführe.
Das ist jetzt also jeweils der Prozesskraft. Und jetzt muss ich wieder anfangen,
ich habe ja die Vermutung, dass diese beiden Therme Bisimilar seid.
Das muss ich jetzt erhärten können, anhand der Definition.
Ich muss mir also überlegen, wenn der eine was tut,
kann ich das denn auf der anderen Seite auch haben?
Nehmen wir mal eine A-Aktion,
Unterschied, was anderes können wir eh nicht machen,
diesen beiden Thermen, dann könnte es so sein,
dass dieser Zustand auf der linken Seite B gut zu dem auf der rechten Seite B passt.
Das ist jetzt nicht so verwunderlich,
wenn ich zwei Gleichbeschriftete Knoten habe,
was kann da wohl passieren
Ja, das Gleiche. Also richtig spannend wird es natürlich nur,
wenn Knoten irgendwie anders einen anderen Therm haben als Anschrift.
Wenn er an beiden das Gleiche dransteht, so wie in diesem Fall,
steht beides mal nur B dran, damit alles,
was sich davon ergibt, wohl das Gleiche sein.
Das wäre auch sehr merkwürdig, wenn auf der linken Seite
mit einem B irgendwas passieren würde oder auf der rechten Seite was anderes.
Also wann immer man zwei Gleichbeschriftete Knoten findet, weiß man
schon mal, die sind auf jeden Fall bisy müller.
Muss ich gar nicht drüber nachdenken. Also den kriege ich
für lau. Da B-Simulation jetzt etwas ist,
was sowohl von links nach rechts als auch umgekehrt läuft,
weiß ich, okay, auf der linken Seite
Der Knoten hat schon mal einen Partner. Das heißt,
wenn ich links einen A-Übergang mache, ja, da passiert nichts,
außer, dass ich in dem Nachfolgezustand B lande,
da muss ja das rechte System das mitmachen.
Wir haben sofort gesehen, da gibt es den gleichen Knoten nochmal.
Das ist der ideale Ansatz, der ideale Kandidat zum B-Simulin.
Muss ich also gar nicht mehr nachdenken. Das heißt,
das rechte System kann allemal das Linke simulieren.
Für eine B-Simulation muss ich mir jetzt aber umgekehrt fragen,
okay, wie sieht es jetzt andersrum raus?
Rechts lasse ich mal was machen. Ja, stellen wir fest,
dass wenn das rechte System die linke Aktion macht,
dann jetzt auch ein B, da haben wir jetzt schon diesen blau gestrichelten Pfeil.
Das heißt, die linke Alternative ist schon abgedeckt.
Jetzt müssen wir uns mal überlegen, naja gut,
das andere A, das mich zu B plus B führt,
das muss jetzt noch irgendwie ein Partner bekommen.
Und da habe ich keine große Auswahl, denn der Partner
muss nach einem Schritt von der linken Seite erreichbar sein.
Wenn es also überhaupt jemanden gibt, der das kann,
dann ist das der. Anders ist das überhaupt nicht möglich,
denn ich weiß, der rechte Therm kommt mit einem A-Schritt
Ist auch der linke Therm ganz oben mit einem A-Schritt antworten können.
Und da kommt er irgendwo hin.
Da ist aber da nur ein Nachfolgezustand P-Strich gibt,
nämlich der B-Beschriftete muss es diese Kante sein.
Und was sehe ich jetzt? Das Spiel kann ich noch weiter treiben,
aber was ich jetzt sofort sehe ist,
alle diese drei Knoten haben jetzt die Eigenschaft mit B sofort zu terminieren.
Und das kann ich jetzt direkt simulieren. Das heißt,
wenn da nur noch Terminationsmöglich ist,
dann gibt es nur noch die Fälle drei und vier.
Das Linke terminiert mit einem B und das kann das Rechte auch.
Und die rechten beiden Knoten terminieren auch nur mit einem B
und da habe ich immer Links den Partner,
der auch mit einem B
nur terminieren kann
Und die einzige Stelle, wo ich da überhaupt hingucken muss,
ist, wo ich B und B plus B vergleiche.
Halten wir nochmal zwei wichtige Dinge fest. Zum einen,
erste Sache. Hier ist erstmal ein Beispiel für zwei
bisimillare Therme, die nicht strukturgleichen Grafen haben.
Das Transitionssystem von den beiden ist offensichtlich unterschiedlich.
Auf der linken Seite zähle ich nämlich 1, 2,
3 Knoten und auf der rechten Seite 1, 2,
3, 4 Knoten.
Also schon mal deutlich unterschiedliche Transitionssysteme
Und was ich noch feststelle, ist,
dass das rechte System offensichtlich eine größere Redundanz hat.
Denn das linke System hat einen Knoten, nämlich B,
da gehen zwei Partner aus.
Das heißt, es gibt im rechten System zwei mögliche Zustände,
die beide genauso gut sind zu Simulationszwecken.
Das heißt, das rechte System ist irgendwie redundant geschwätziger,
weil es zwei Systemzustände gibt,
die das beide simulieren können
Das beschreibt mir die B-Simulationsrelation auch. Für dieses Beispiel würden
jetzt sagen, okay, welche Knoten sind in Relation.
Das heißt, für dieses Beispiel kann ich die Visimulationsrelation schnell hinschreiben.
Ich nehme also genau die gestrichelten Elemente und sage,
erstmal die Ursprungsknoten sind in B-Simulationen, das habe ich jetzt festgestellt,
das heißt, der Therm A plus A
B ist in B-Simulation zu A, B plus A,
Klammer auf B, plus B, Klammer zu.
Und ganz offensichtlich ist B, B-Simulat zu B,
das heißt, diese beiden Therme sind in Relation,
aber auch B zu B plus B ist in Relation.
Das heißt, diese gestrichelten Pfeile im Prozess Grafen,
die kann ich interpretieren als Relation zwischen Prozess Thermen jetzt.
Und offensichtlich ist diese Relation schon mal von der Eigenschaft,
dass sie reflexiv ist, sieht man hier,
B ist B-Simulat zu B,
aber das gilt für jeden Thermtee.
Jeder Thermtee ist B-Simulat zu sich selbst.
Machen wir noch ein zweites Beispiel,
sieht auch
relativ gleich aus
Ja, wenn diese beiden Therme das gleiche Verhalten hätten,
erzähl mal jetzt gleich, sogar geschrieben, warum gleich?
Naja, da hätte ich so eine alte,
wohlbekannte Wechenregel, nämlich Disziputivgesetz. Vulgo-Ausklammerregel. Das heißt,
wenn ich A mal B plus 10 Klammern habe,
dann darf ich das ausklammern und daraus A mal B plus
A mal C machen.
Zumindest, wenn ich normale Zahlen habe und mal Multiplikationen und plus Summe bedeutet.
Jetzt haben wir schon mal die beiden Prozesstherme daneben gemalt.
Der eine Prozess bedeutet erst ausführen und dann die Alternative haben
zwischen B und
Auf der rechten Seite steht. Ich habe die Alternative zwischen
Amal B und Amal C. So wie das Rechts dargestellt ist.
Das ist genau das Beispiel, das wir vorhin hatten mit
unseren Festplatten. Und da haben wir ja schon gesehen,
dass das mit der B-Simulation nicht so weit her ist.
Wollen wir das nochmal vorsichtshalber,
der Prozess graf für den Therm auf der linken Seite,
sieht, wenn man es durchexerziert, oh Wunder so aus,
Amal B plus C, da kann ich erst ein A ausführen.
Lande dann im Restherm B plus C,
entweder B oder C, aber auf jeden Fall
terminiere ich dann
Der andere Therm hat, auch nicht zu überraschen,
die Auswahl, wenn ich A-B-Auswahl AC habe,
dann kann ich am Anfang immer ein A ausführen.
Landen denn entweder ein B ohne MC,
beides sind jetzt atomare Dinge, können also sofort terminieren,
entweder links mit dem B oder rechts mit dem C.
Und jetzt gehen wir mal naiv davon aus,
die beiden wären jetzt B-Similar. Was müsste denn sein?
Naja, da mache ich ja meinetwegen im linken Therm
eine Aktion,
lande im Therm
Und dazu muss es nicht am Partner rechts geben.
Nehmen wir mal an, der da ist der Partner.
Also CB plus C ist Bisimilar zu den Thermen B.
Und da sieht man schnell, das ist keine besonders glückliche Wahl.
Denn auf der linken Seite sieht man jetzt,
da gibt es noch die Kante, die mit C beschriftet ist.
Das heißt, der linke Thermen kann jetzt eine C-Aktion zur Termination machen.
Und rechts gibt es diese Kante gar nicht. Und das
Ganze wird auch nicht besser, wenn ich sage, okay,
hat nicht geklappt, nehme ich mal die zweite Variante.
B plus C soll jetzt mal testweise Bisimilar sein zum C
auf der rechten Seite
Den habe ich das B nicht. Das heißt,
es gibt keinen Partner für die Aktion, die ich links ausführen kann,
dass auf der rechten Seite ein dazu, wie simularer Nachfolgezustand sich einstellen würde. So,
und wenn es so ist, dass ein Ausreißer dabei ist,
das heißt, es gibt ein solches Pärchen,
P wird mit A zu P-Strich,
aber auf der rechten Seite kann ich zwar von Kuh aus,
mit einem A zu einem Kuhstrich kommen,
aber das Kuhstrich selbst ist nicht mehr B-Simular zu P-Strich,
so wie das hier passiert ist.
Der Nachfolgezustand, die beiden sind nicht mehr B-Simular.
Dann habe ich
genau das Problem
Das heißt, wir haben hier nachgewiesen anhand des Prozessgrafen,
dass diese beiden Dinge nicht bissimilar sind,
was im Umkehrschluss heißt, bis ganz nach oben,
wir haben kein Distributivgesetz in unserer Struktur.
Das heißt, sollte ich auf den Gedanken kommen,
hier mit Plus und Mal irgendwie zu rechnen,
dann wäre es eine sehr dumme Idee,
ausklammern zu wollen in dieser Form.
Das heißt, als mathematische Struktur gedeutet,
verhält sich das schon mal anders,
als wir das von den reellen Zahlen meinetwegen gewohnt sind.
Diese Gleichung gilt also nicht.
Noch ein Beispiel
Ich sehe immer ein bisschen zwei Systeme, ein bisschen aufwendiger.
Wenn ich mich jetzt frage, P-0 und Q0 seid ihr beiden?
Bisimila. Ja, was muss dann gelten? Da muss ich
mal gucken, welche zwei Zustände, Nachfolgezustände sind jetzt visimilar.
Ich kann mit A, kann ich ja in linken Systemen
zwei verschiedene Nachfolgezustände kommen, nicht P1, P2.
Im rechten System kann ich aber nur zu Q1. Das heißt,
damit das überhaupt gilt, muss ich schon mal eine Menge verkabeln.
Ich muss mich sagen, P1, Muss B-Simular sein
zur Q1 und P2 muss auch B-Simular zur Q2 sein.
Die beiden müssen also schon gelten. Was gilt dann?
Ja, in beiden kann ich eine B-Aktion ausführen,
also ein P1 und P2 geht das.
Okay. Und was geht noch? In beiden kann ich
eine Aktion ausführen. Im linken System komme ich dann
von P1 nach P2. Johannes ist in Ordnung,
da komme ich mich im rechten System von Q1 nach Q1.
Also die Nachfolgezustände sind auch B-Simular. Oder ich komme
von P2 mit A nach
Und das ist rechts mit der Schleife von Q1 nach Q1 auch wieder simuliert. So,
das heißt, da ist die Welt noch in Ordnung,
P1 und P2 passen sehr gut auf der rechten Seite zur Q1.
Müssen wir mal gucken, was gibt es da noch?
Gibt es da noch mehr auf der rechten Seite?
Wenn Q1 ein B ausführt, dann komme ich nach Q2.
Wenn ein P1 ein P2 machen,
dann kommen die beide wieder zu P0 zurück.
Das heißt, Q2 selbst muss auch wieder Bisimilar sein zu P0.
Was kann ich dort machen? Das muss ich jetzt auch
wieder nachprüfen in Q0 und Q2 kann ich eine Aktion machen.
Und zum Glück komme ich von Q2 mit einer Aktion zu
Q1 und von P0 mussten wir schon zu P1 und P2.
Und von den beiden Knoten wussten wir schon, dass sie ein Bisimilla sind.
Das heißt, diese Knoten habe ich jetzt auch festgestellt,
der passt zu dem. Und dann habe ich langsam so
die Verkabelung weitergemacht. Das muss ich mir also angucken,
dass der da wieder zu dem passt.
Und wenn ich dann noch hier einmal nachgucke und auf der
rechten Seite bin ich durch
Wo kommt das Ganze her? Das kommt aus der Grundidee von
Robin Millner mittlerweile auch verstorben, der sich mal überlegte,
dass es so etwas wie schwarze Kisten geben sollte,
Black Boxes, reaktive Systeme.
Also für ihn eine Box, ich weiß nicht,
was drin ist, irgendwie ein Automat. Und er meinte,
es ist gar nicht so wichtig zwischen akzeptieren,
nicht akzeptieren, welche Sequenzen da gehen,
sondern wir wollen wissen,
welche Buttons,
also welche Knöpfe
wir drücken können
Und wir versuchen jetzt herauszufinden, durch das Drücken von Knöpfen,
A, B, C,
da irgendwie eine Unterscheidung zwischen einer Box und einer anderen herauszukriegen,
ohne dass ich genau weiß, wie das geht.
Es geht nur um die Möglichkeit, kann ich die beiden irgendwie unterscheiden,
wenn ich viel Glück habe oder kann ich das unter keinen Umständen machen.
Und wenn es mir nicht möglich ist,
die beiden zu unterscheiden, dann sind sie bisimilar.
Und ansonsten sind sie es eben nicht.
Und sein grundlegendes Beispiel, daher kommt das, war BBC,
Blackbox,
War sein Koffetee-Automat, da konnte man dann eben nicht
Euro einwenden, sondern zwei P, zwei Pants.
Sehr günstige Maschinen. Ja, das war seine Verkaufs, seine Verkaufsmaschinen.
So fing das irgendwann alles mal an in den 80ern,
wo man sich dann erstmal über solche Aspekte der B-Simulation Gedanken macht.
Und das Beispiel geht weiter, sagte,
wenn man an solchen Kaffeeautomaten hat, dann kann man sich eben vorstellen,
die Blackbox sieht intern so aus, zwei Pants,
dann kriegt man, kann man sagen,
ich will einen Tee haben,
dann ist wieder
am Start zustand
Ist günstiger als Kaffee, wenn man Kaffee haben will,
muss man nochmal zwei nachwerfen, dann kann man Kaffee drücken.
Das können zum Blackbox sein. So könnte es
implementiert sein. Oder so, ja auch eine Variante,
das heißt, entweder wirft man zwei P,
zwei Pens ein, landet aber in unterschiedlichen Zuständen.
Die Maschine rät, was man wogleich haben will, entweder Tee oder Kaffee. Ja,
also sie redet erstmal, dass man Kaffee haben will,
sagt, bitte wirft noch zwei ein, macht man das,
bekommt seinen Kaffee oder man,
sie redet,
man will Tee haben
Und bekommt dann, wenn man auf den Teeknopf rückt,
auch Tee. Dumm nur für denjenigen,
der eigentlich Tee haben wollte, zwei Pens einwirften,
im oberen Bereich gelandet ist und sagt, nee, nee,
nee, Tee gibt es jetzt nicht. Ich will noch
zwei Pens haben, damit du den Kaffee kriegen kannst.
Also muss man nochmal zwei nachwerfen,
um ein Getränk zu bekommen, das man nicht haben wollte.
Oder man sagt, ach, behalte das Geld.
Beides nicht so erträglich. Und da ist eben der Gag,
das war so die kleine Polemik, offensichtlich gibt es starke Gründe.
Aus Sicht des Benutzers, diese beiden Automaten unterscheiden zu wollen,
auch wenn sie die gleichen Abläufe unterstützen. Dann sieht man da oben,
der kann zwei Pens und die und dann zwei Pens,
zwei Pens Coffee, das können die beiden.
Genau diese Aktionsfolgen führen mich vom Staatsunstand wieder zurück in den Staatszustand.
Sind nach also traditioneller Sichtweise der Automaten nichts zu unterscheiden.
Dass man das jetzt unterscheiden will, dass da tatsächlich ein
Bedarf besteht, das wollte Millnam mit diesem Bedienungsautomaten-Kaffee-Tee-Beispiel untermauern.
So, bislang haben wir eigentlich nur etwas gemacht,
was wir schon kannten und wir haben es nochmal anders gemacht und umständlicher,
dafür haben wir auch nicht viel bekommen.
Wir haben einen Prozess gebracht, es ist nicht leichter geworden bislang,
Dafür können wir aber auch kaum was modellieren.
Klingt also nicht gerade besonders attraktiv, was wir bislang wissen.
Also muss jetzt noch ein bisschen was kommen.
Und jetzt kommt es, jetzt kommt der Gag.
Jetzt machen wir uns Gedanken, wie passt B-Simulation jetzt
mit der algebraischen Struktur von BPA zusammen.
Verträgt sich das irgendwie? Was soll das heißen? Naja
, erstmal, die B-Simulation ist eine Äquivalenzrelation. Ja,
das ist ein alter Hut, das wüssten wir sinngemäß schon.
Er reicht in diesem Setting nicht ganz aus
Denn Äquivalenzen ist ja schön und gut, also reflexiv,
symmetrisch, transitiv, dass es reflexiv ist,
ist klar, symmetrisch ist auch klar,
weil ich alle Regeln irgendwie sowohl von links nach rechts als auch umgekehrt habe.
Und dran, so tief ist eine einfache Induktionsaufgabe.
Aber wir wollen mit BPA hier eigentlich Kompositionen beschreiben.
Und da hätten wir gerne, dass wir nicht unterscheidbare Subkomponenten
eines Systems austauschen können. Und das Gesamtsystem ist dann immer
noch verhaltensgleich. Wir wollen also beispielsweise ein System haben,
das haben jetzt, und es wird durch eine initiale Auswahl
beschrieben zwischen dem Subsystem S und dem Subsystem Tee.
Ich habe also S plus T als Systemspezifikation.
Und jetzt denke ich mir, auch Mensch,
kann es das besser machen oder billiger?
Tauscht da mal ein bisschen was aus? Also erste Sache,
wir haben ein Subsystem S-Strich, das soll das Subsystem S ersetzen.
Und das ist schon ganz okay, wie wir das machen,
denn wir wissen, S-Strich verhält sich genauso nach außen in VS.
Besteht also gar keine Gefahr, denken wir.
Wir wissen,
S ist B-Similats-S-Strich
So, Dennis aber noch bislang nicht gewährleistet,
das jetzt Folgendes gilt, was wir aber gern hätten,
dass dann auch das Gesamtsystem nach dem Umbau sich immer noch so wie das Alte verhält.
Also was wir gerne hätten, ist, wenn wir wissen,
ein Subsystem ist, es nicht zu unterscheiden von Essstrich,
dass das dann impliziert,
dass in Ersmal-Tee oder Ex-Plus-Tee sich das genauso verhält wie Essstrich
mal-T oder Essstrich-Plus-Tee jeweils.
Da unten hätten wir natürlich gern Plus
Das heißt, diese beiden Sachen,
wenn ich in einen Teiltherm etwas ersetze durch etwas B-Similares,
also es durch es Strich, dass sich da nichts verändert.
So, und dieses Konzept, das ich irgendwo in Teilen
was ändern kann, und es bleibt immer noch gleich,
das gibt es in der Alge Brach schon,
und das nennt sich dann Kongrenz.
Wir wollen also nicht nur haben, dass B-Simulation eine Äquivalenz ist,
sondern wir wollen sogar haben, dass es eine Kongruenz ist.
So, was ist eine Kongruenz? Ganz allgemein ist das
eine Äquivalenzrelation. Ich gebe nochmal ein neutrales Zeichen,
tilde gleich.
Auf einer Grundlänge
Diese Äquivalenzrenation heißt Kongruenz, wenn für alle X, Y,
Y, Strich und alle Operatoren F, die ich so haben kann,
in unserem Fall sowas wie Plus und Mal, gilt.
Wenn ich weiß, X ist Äquivalent zu X-Strich und Y,
Äquivalent zu Y-Strich, dann kann ich darauf den Operator F anwenden,
also F von X, Y. Und das ist Äquivalent zu F von X-Strich,
Y-Strich.
Das heißt, wenn ich im Therm Hef XY X durch
das Äquivalente X-Strich ersetze und Y durch das Äquivalente Y-Strich dann ist das,
was da rausgekommen ist, äquivalent zu dem Ursprünglichen.
Das ist deine Kongruenz. Und das nennt sich dann Verträglichkeit.
Verträglichkeit der Äquivalenz mit den Operatoren. In dem Sinne hieß
die Eingangsfolie Verträglichkeit. Und in unserem Kontext wollen wir jetzt,
dass B-Simulation eine Kongruenz bezüglich unserer beiden Operatoren plus und mal sein soll.
Das heißt, wir wollen,
wenn wir es als B-Simular-CS-Strich wissen und Tee als B-Simular-CT-Strich,
dann wollen wir
das S-Plus-T-B-Seminar zu S-Strich und Tee-Striches
Und wir wollen, dass es mal T-B-Similar zu S-Strich mal T-Strich ist.
Das hätten wir gerne. Und das Gute ist, die Simulation ist tatsächlich
auch eine Konkurrenz auf BPA. Dem ist so. Ja,
das kann man nachweisen und das Volk daraus aus noch einem allgemeineren Theorien,
das wir nicht beweisen wollen, die Transitionsregeln, die wir uns mal definiert haben,
die haben eine ganz spezielle Form, die Pans-Form.
Und weil das so ist, weiß ich, aha,
da kommt immer etwas raus, was verträglich ist,
also B-Simulation ist für alle solche Systeme
Eine Kongruenz. Gut, wer also, ist schon mal
eine elementare Sache gewonnen, aber das hilft uns immer noch nicht viel.
Denn um das irgendwie grundsätzlich nachzuweisen,
weiß ich ja nur, wenn ich zwei B-Simulare-Systeme habe,
dann kann ich sie weiter zusammenbauen und kann da auch was ersetzen.
Nur das Dumme ist, ich muss ja hier,
um so etwas zu machen, immer noch nachweisen,
dass S-B-Simular zu S-Strich ist und TP-Simular zu T-Strich.
Wenn ich das schon habe, okay,
dann weiß ich,
ich darf damit weiterbasteln
Darf das addieren oder multiplizieren? Nur den Beweis,
dass S- und S-Strich, B-Similar sind,
muss ich immer noch irgendwie führen. Gut,
da kann ich sagen, dass wenn ich jetzt sukzessive rückwärts
an und bis ich bei so kleinen Bausteinen angekommen bin,
dass mich das nicht mehr juckt.
Aber noch cooler ist es, wenn man das tatsächlich machen könnte durchrechnen.
Und das wollen wir jetzt machen. Wir wollen,
dass ganze, diesen ganzen Prozess des Überprüfens,
ob zwei Therme B-Similar sind, jetzt durch Ausrechnen machen.
Und dazu brauchen wir irgendwelche Aktionen,
Regeln, die uns sagen,
wie darf ich denn
auf Prozessthermen rechnen
Distributivgesetz, haben wir schon gesehen, sollten wir nicht so ganz allgemein anwenden.
Das ist mich falsch. So, warum brauchen wir das auch? Hauptsächlich,
unsere Grundmotivation ist, es ist zu aufwendig, zu überprüfen,
ob wir zwei Prozesstherme, die gegeben sind, ob die wie simular sind.
Das wollen wir jetzt irgendwie anders machen. Und anders heißt,
wir wollen jetzt nicht den Prozess grafen, konstruieren,
sondern wir wollen stattdessen die B-Simulatsproduktion im Kalkül-Fonds umschreiben.
Das heißt, ein Gleichungskalkül soll aufgestellt werden,
es soll also ein Gleich gelten, Und das soll jetzt die Frage,
zwei Termen sind bisimular, irgendwie ablösen durch die Frage,
sind sie in einem geeigneten Kalkül gleich?
Das will ich also durch geeignete Umformungsschritte oder Ableitung in diesem Kalkül jetzt regeln.
Und wir haben jetzt einen sehr speziellen Kalkül, nämlich ein Gleichungskalkül.
Es gibt auch logische Kalküle, da interessieren uns alle Warnaussagen.
Wir hatten Transitionskalkül, da haben wir Aussagen von,
S wird mit einer B-Aktion zu Tee oder sowas.
Unser Gleichungskalkül, der ist jetzt gut für Aussagen
der Form X
Sowas wollen wir jetzt nachweisen. Also nur solche Aussagen wollen wir jetzt beweisen.
Und mit diesem Kalkül wollen wir dann wie gewohnt rechnen,
so wie wir das aus der Schule gewohnt sind,
mit dem kleinen Wehrmutstropfen, dass wir uns jetzt daran gewöhnen müssen,
dass die Aktionenmenge ein bisschen anders ist,
als wir das so kennengelernt haben für reelle Zahlen.
Ja, für Gruppen oder Körper oder in der Menge Algebra,
da gibt es ja gewisse Aktionensysteme,
da gibt es Assoziativität, Kommunikativität und so weiter.
Bei uns werden die Aktionen klein ein bisschen anders aussehen.
So, was ist jetzt erstmal
ein Gleichungskalkül
In so einem Gleichungskalkül, da gelten erstmal so ein paar Elementare,
Regeln, die man schon mal haben kann.
Ich kann mich immer herleiten, dass Tee gleich Tee ist.
Also in diesem Kalkül ist die Aussage, das kannst du in einem Schritt beweisen.
Das kostet nichts. Ist also sinngemäß eine Aktion. Das nächste ist,
das ist Symmetrie, wenn ich schon weiß,
dass es gleich T ist und ich habe dafür einen Beweis geschrieben,
dann kriege ich in einem Beweisschritt mehr einen Beweis dafür,
dass Tee gleich Es ist.
Das ist jetzt
ein Umformungsschritt
Wenn ich das nämlich stumpf am Computerprogramm übertrage,
dann kann das nicht erst mal davon ausgehen,
wenn es gleich Tee ist, dass daraus sofort folgt,
dass Tee gleich Ess ist, das muss ich dem erst sagen.
Genauso muss ich ihm sagen, das ist der dritte Punkt,
und der bedeutet Transitivität, wenn ich einen Beweis habe,
dass es gleich Tee ist, und ich habe einen zweiten Beweis,
der mir sagt, dass Tee gleich U ist,
dann kann ich in einen Beweisschritt sagen, okay,
diese beiden Teilbeweise kann ich verketten und mache daraus einen größeren Beweis,
der dann mir zeigt,
dass es gleich U ist
Und damit habe ich schon mit diesem Beweis Regeln,
habe ich schon mal festgelegt, dass dieses Gleichheitszeichen tatsächlich eine Äquivalenzrelation beschreiben soll.
Denn es wird eine Relation beschrieben, die offensichtlich reflexiv,
symmetrisch, transitiv ist. Und jetzt fügen wir noch etwas
hinzu, das heißt Kontextregeln. Wenn ich mich beweisen kann,
dass erst gleich erst Strich ist, und Tee gleich Tee-Strich ist,
dann darf ich auch beweisen, diese beiden Gleichungen da wie Adien,
dann darf ich also beweisen, dass S-Plus-T gleich erst Strich-Plus-T-Strich ist.
Und ich darf zwei Gleichungen auch multiplizieren,
ich darf also auch folgern,
dass S-MAT gleich S-Strich-MAT-Strich ist
Und damit mit dieser Kontextregel haben wir automatisch gesagt,
dass unser Gleich auch eine Kongruenz sein soll.
Denn das ist genau die Eigenschaft,
die wir jemals Konkurrenz definiert haben, mit dieser Kontextregel,
wird die Äquivalenz also automatisch jetzt kongruent sein.
Was ich dann noch brauche ist, wenn ich irgendwelche Aktionen habe,
bislang weiß ich nur Tees gleich Tee. Wow,
da steht da irgendwie so schematisch, das gilt zwar für alle Tee,
aber meistens habe ich ja nicht einen Aktionen oder ein Set,
sondern ich habe ein Schema.
Und deswegen gibt es so einen Substitutions- So eine Substitutionsregel,
die sagt, wenn ich schon mal weiß,
dass es gleich Tee, zum Beispiel Aktion ist,
es könnte auch irgendwie ein Beweis dafür sein, festgleich Tee.
Und ich habe jetzt eine Substitution, ich ersetze Variablen durch Therme.
Das heißt, SOT sind irgendwelche Ausdrücke, in denen freie Variablen vorkommen.
Wenn ich jetzt diese Variablen durch irgendwelche Therme ersetze,
und zwar beispielsweise,
da kommt ein S vor und es kommen x auch ein paar Mal einen Tee vor,
dann darf ich für dieses TX irgendwas einsetzen,
meinetwegen einen Therm U.
Das ist eine Substitution
Und was dann gilt, das Ergebnis, diese Substitution ist für S,
Sigma von S. Und für T ist es Sigma von T.
Und unsere Substitutionsregel sagt, dass das, was da rausgekommen ist, wiederum gleich ist.
So, damit haben wir die wesentlichen Schlussregeln des Gleichungskalkshöls schon definiert.
So sieht jedes Gleichungskalkül aus. Wodurch sich die Biss da
jetzt unterscheiden ist, welche zusätzlichen Aktionen lasse ich noch zu.
Und für unser BPA-Kalkül, nehmen wir jetzt mal folgende,
es werden fünf Aktionen gleich sein,
Wobei die ersten drei Aktionen, die kommen einem altbekannt vor,
zumindest die ersten beiden, dafür haben wir einen Namen.
A1 sagt mich X plus Y, ist gleich Y plus
X. Vornehmer ausgedrückt, plus ist kommmutativ. Die zweite Regel,
das ist uns sehr, sehr vertraut, das sagt,
ich darf die Klammern umherschubsen, Klammer Vertauschungsgesetz oder Vornehmer,
plus ist assoziativ.
Das dritte, das ist vor Plus relativ ungewohnt,
also X plus X gleich X,
in den reellen Zahlen gilt das nicht.
2 plus 2
ist nicht
Für Mengenalgebra gilt das aber. X vereinigt mit XSX.
Da habe ich das. In bullschen Verbänden ist das also
eine Eigenschaft, die ich habe, die das heißt,
plus ist ein E-Damp potenter Operator.
Und wir können auch mal überlegen, warum ist das sinnvoll?
Plus wollen wir als Auswahl haben. Das heißt,
die Auswahl zwischen X und Y ist das Gleiche wie die Auswahl zwischen Y und X.
Und da habe ich die Auswahl zwischen X und Y und Z
mache oder das irgendwie anders kopiere, ändert auch nichts.
Und im Beispiel haben wir schon gesehen,
die Auswahl zwischen X und X ist gar keine echte Auswahl
Da kann ich nichts auswählen. Also kann ich auch gleich sagen,
das ist so wie X. Das sind die drei Aktionen,
die ich brauche, um Plus in den Griff zu kriegen.
Und jetzt brauche ich noch, nehmen wir mal A5 als erstes,
eins, das sagt, okay,
X mal Y mal Z ist das gleiche wie X mal,
Y mal Z geklammert.
Also mal ist auch assoziativ. Mal ist aber weder kommutativ,
die Sequenzen sollen ja genau in dieser Reihenfolge sein.
Das heißt, x mal Y ist nicht das gleiche
wie Y mal
Erst A ausführen und dann B, ist natürlich was anderes
als erst B und dann A. Das heißt, Kommutativität haben wir nicht.
Idem Potenz wäre auch nicht so sinnvoll. X mal X
, gleich X, nee. A und A ausführen,
das wären ja zwei Aktionen, das ist was anderes als Einmalarzt ausführen.
Die Gleichheit haben wir auch nicht. Und was wir dann haben,
das ist wieder ein Ausklammergesetz, aber nicht das Böse von vorhin,
sondern das Gute.
Nämlich das von rechts. Hier sieht man Z,
darf ich rausmultiplizieren, aber nur von rechts,
da steht mir X plus Y Mahlzeit
Ja, ich muss,
also erst eine Auswahl zwischen X und Y treffen und dann Z. Naja,
und auf der rechten Seite steht,
ich muss erst eine Auswahl zwischen X und Y treffen und bei beiden folgen noch das Set hinterher.
Das verändert das Verhalten nicht. Gut, da setzen wir
beim nächsten Termin nochmal ein und gucken mal an,
was wir damit jetzt machen können.
Wir werden feststellen, damit kann man wie gewohnt jetzt rechnen.
Wie gewohnt? Ja, halt mit diesen Aktionen, die gewohnt.
Aber die Art und Weise des Rechnens ist gleich.
Bis Donnerstag